题解 | #密码验证合格程序#
密码验证合格程序
http://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import sys
def is_ok(i):
if len(i) < 9:
return "NG" # length
else:
flag = [0,0,0,0]
for j in i:
if j.isdigit():
flag[0] = "1"
elif j.isalpha():
if j.isupper():
flag[1] = "1"
else:
flag[2] = "1"
else:
flag[3] = "1"
if flag.count("1") < 3:
return "NG" #type
else:
for k in range(len(i)//2, 2, -1):
set1 = set()
last = ""
rept = 0
for o in range(0, len(i)-k+1):
target = i[o:o+k]
set1.add(str(target))
if last==target and k<=4:
rept +=1
last = target
if len(set1) + rept!= len(i)-k+1:
return "NG" #sub list
return "OK"
in_str = map(lambda x:x.strip('\n') , sys.stdin.readlines())
for i in in_str:
print(is_ok(i))