某公司笔试题 - 密码验证合格程序(附python代码)
# 密码要求
# 1.长度超过8位; 2. 包括大小写字母,数字,其它符号,以上四种至少三种; 3.不能有长度大于2的包含公共元素的字串重复(其他符号不含空格或换行)
# 数据范围:输入的字符串长度满足1<=n<=100
# 检测输入密码
def checkpassword(psw):
if len(psw) <= 8 or len(psw) > 100:
return "NG"
# 包括至少三种
l = [0, 0, 0, 0]
# 遍历psw_str,有数字,有小写,有大写,有其它符号就记为1
for i in psw:
if i.isdigit():
l[0] = 1
elif i.islower():
l[1] = 1
elif i.isupper():
l[2] = 1
else:
l[3] = 1
# 数组l中和小于3,说明不满足3种以上
if sum(l) < 3:
return "NG"
# 不能有长度大于2的包含公共元素的字串重复
for j in range(len(psw)-3):
if psw.count(psw[j:j+3]) > 1:
return "NG"
return "OK"
print("请输入密码:")
while True:
try:
psw = input()
# 判断输入的密码中是否存在空格或换行符,python3中需要用\\n来表示\n
if len(psw.split(' ')) > 1 or len(psw.split('\\n')) > 1:
print('密码中不能包含空格或换行,请重新输入')
else:
res = checkpassword(psw)
print(res)
except ValueError:
if ValueError:
break
标签:
HW笔试题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?