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