题目
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有长度大于2的不含公共元素的子串重复 (注:其他符号不含空格或换行)
答案与解析
import sys
import re
for i in sys.stdin:
i = i.strip()
if len(i) <= 8:
print('NG')
else:
sub = []
#最大重复子串长度2
for item in range(len(i)-2):
# 生成一个长度为3的所有子串序列;
# 因为长度大于4的相同子串,必定存在长度3的相同子串);
sub.append(i[item:item+3])
# 用set去重,判断长度就可以知道是否有重复;
if len(set(sub)) < len(sub):
print('NG')
else:
num = 0
U = '[A-Z]'
L = '[a-z]'
m = '\d'
chars = '[^A-Za-z0-9_]'
typelist = [U, L, m, chars]