题目描述
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述:
若是符合要求输出:OK,不然输出NGide
解法1(Python3):code
import re import sys for line in sys.stdin: line = line.strip() if len(line) <= 8: print('NG') continue count = 0 if re.search('[a-z]+', line) is not None: count += 1 if re.search('[A-Z]+', line) is not None: count += 1 if re.search('[0-9]+', line) is not None: count += 1 if re.search('[^a-zA-Z0-9]+', line) is not None: count += 1 if count < 3: print('NG') continue for i in range(len(line)-3): if line.count(line[i:i+3]) > 1: print('NG') break else: print('OK')
解法2(Python3):ip
import re try: while True: s = input() a = re.findall(r'.*(.{3,}).*\1', s) b1 = re.findall(r'[0-9]', s) b2 = re.findall(r'[A-Z]', s) b3 = re.findall(r'[a-z]', s) b4 = re.findall(r'[^0-9A-Za-z]', s) if [b1, b2, b3, b4].count([]) <= 1 and a == [] and len(s) > 8: print('OK') else: print('NG') except: pass