题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import sys
def check_elem(pwd):
checks = [0, 0, 0, 0]
for c in pwd:
if c.isupper():
checks[0] = 1
elif c.islower():
checks[1] = 1
elif c.isdigit():
checks[2] = 1
else:
checks[3] = 1
s = sum(checks)
if s < 3:
return "NG"
return "OK"
def check_sub_s_duplicated(pwd):
for i in range(len(pwd) - 2):
if i < 3:
if pwd[i:i + 3] in pwd[i + 3:]:
return "NG"
elif i >= 3:
if pwd[i:i + 3] in pwd[:i - 1] or pwd[i:i + 3] in pwd[i + 3:]:
return "NG"
return "OK"
def validate(pwd):
if len(pwd) <= 8:
return "NG"
if check_sub_s_duplicated(pwd) == "NG":
return "NG"
if check_elem(pwd) == "NG":
return "NG"
return "OK"
for line in sys.stdin:
a = line.strip("\n")
print(validate(a))
