该题第三条意在判断是否有子串重复
from sys import stdin
ostr = stdin.readlines()
def decide_length(passw): #判断长度是否符合
if len(passw) > 8 :
return True
else:
return False
def decide_kind(passw): #判断种类是否符合(应用ASCII码值)
kind = set()
for i in passw:
if 48 <= ord(i) <= 57 :
kind.add(1)
elif 65 <= ord(i) <= 90 :
kind.add('A')
elif 97 <= ord(i) <= 122 :
kind.add('a')
elif ord(i) != 32 or ord(i) != 10:
kind.add('T')
if len(kind) >= 3 :
return True
else:
return False
def decide_re(passw): #判断是否有子串重复(用count函数来统计)
x = len(passw)//2
for i in range(x):
if passw.count(passw[i:i+3]) > 1:
return False
return True
for pasw in ostr:
if decide_length(pasw.strip('\n')) and decide_kind(pasw.strip('\n')) and decide_re(pasw.strip('\n')):
print('OK')
else:
print('NG')