题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
有大神给出了s.split(code[i,i+3])>=3的代码判断是否存在大于2的重复子串,确实很巧妙,膜拜,
但是这种方法区分不出'RRRR'或者‘ababa’这种结构,所以我还是用传统遍历的方法判断:
def code_compl(code):
m=len(code)if m<=8:
return False
lower=upper=digit=special=illegal=0
for i in range(m):
if code[i].islower():
lower = 1
elif code[i].isupper():
upper = 1
elif code[i].isdigit():
digit = 1
elif code[i] == ' ':
illegal =0
else :
special = 1
summ=lower+upper+digit+special+illegal
if summ <3:
return False
for i in range(m-3):
for j in range(i+1,m-2):
if code[i:i+3]==code[j:j+3]:
return False
return True
while 1:
try:
print('OK' if code_compl(input()) else 'NG')
except:
break
try:
print('OK' if code_compl(input()) else 'NG')
except:
break