分类:字符串

知识点:

遍历字符串的每个字符    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 软件工程小施同学

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。