题解 | 密码验证合格程序
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import sys
for line in sys.stdin:
a = line.split()
# print(a)
secrt = a[0]
if len(secrt) < 8:
print("NG")
continue
c_class = set()
sameindex_list = []
samechar_list = []
for i,s in enumerate(secrt): # isupper, islower, isdigit 是方法(methods)而不是属性(properties),所以需要加上括号 () 来调用它们
if s.isupper():
c_class.add("upper")
elif s.islower():
c_class.add("lower")
elif s.isdigit():
c_class.add("digit")
else:
c_class.add("teshu")
for j in range(i+1,len(secrt)):
if secrt[j] == s and j-i > 2:
sameindex_list.append((i,j))
break
# print(sameindex_list)
# print(c_class)
if len(c_class) < 3:
print("NG")
continue
for i,j in sameindex_list:
if j+2 < len(secrt) and secrt[i+1] == secrt[j+1] and secrt[i+2] == secrt[j+2]:
samechar_list.append(secrt[i])
samechar_list.append(secrt[i+1])
samechar_list.append(secrt[i+2])
# print(samechar_list)
if len(samechar_list) >2:
print("NG")
continue
else:
print("OK")
