分类:字符串
知识点:
-
遍历字符串的每个字符 for char in my_str:
-
可以直接比较字符范围 'a' <= char <= 'z'
-
列表统计元素个数 my_list.count(elem)
-
寻找子串 my_str.find(sub_str)
题目来自【牛客】
import re
import sysdef check_password(password): # 检查密码长度 if len(password) <= 8: return "NG" # 判断是否至少包括大小写字母、数字和其他符号中的三种categories = [False] * 4for char in password:if 'a' <= char <= 'z':categories[0] = Trueelif 'A' <= char <= 'Z':categories[1] = Trueelif '0' <= char <= '9':categories[2] = Trueelse:categories[3] = Trueif categories.count(True) < 3:return "NG"# 判断是否有长度大于2的重复子串for i in range(len(password) - 3):substr = password[i:i+3]# find() 方法是字符串类型(str)的一个方法,# 用于查找子字符串在主字符串中首次出现的位置。# 如果找到子字符串,则返回其首次出现的索引值;# 如果未找到子字符串,则返回-1if password[i+3:].find(substr) != -1:return "NG"return "OK"for line in sys.stdin:password = line.strip()result = check_password(password)print(result)
by 软件工程小施同学