描述
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)
数据范围:输入的字符串长度满足 1 ≤ n ≤ 100 1 \le n \le 1001≤n≤100
输入描述:一组字符串。
输出描述:如果符合要求输出:OK,否则输出NG
示例1
输入:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出:
OK
NG # 重复字符串
NG # 字符类型少于3种
OK
while True:
try:
password = input()
# pylint: disable=C0103
a, b, c, d, flag = 0, 0, 0, 0, True
for i in password:
if i.isdigit(): # 或者使用条件:'0' <= i <= '9'
a = 1
elif i.islower(): # 或者使用条件:'a' <= i <= 'z'
b = 1
elif i.isupper(): # 或者使用条件:'A' <= i <= 'Z'
c = 1
else:
d = 1
for i in range(len(password) - 3):
if password.count(password[i:i + 3]) > 1:
flag = False
break
if len(password) > 8 and a + b + c + d >= 3 and flag:
print("OK")
else:
print("NG")
except EOFError:
break