旨在为小朋友们提供全面的学习材料,共同为等级考试做好准备。
添加小助手微信,回复【GESP三级2025.12_密码强度】,获取本题源代码。
【提交】
https://www.luogu.com.cn/problem/B4449
【问题描述】
小杨是学校网络安全小组的成员,今天他的任务是设计一个“密码强度检测器”,帮助同学们检查自己的密码是否足够安全。一个安全的密码需要满足以下条件:
例如:
PAs1s2an 是安全密码(有8位、包含大写字母 P、A 和数字 1、2)。ab1da3cd 不是安全密码(没有大写字母)。Paabdbcd 不是安全密码(没有数字)。Pa2 不是安全密码(只有3位,太短了)。【输入描述】
第一行一个正整数 ,代表数据组数。
对于每组数据,一行包含一个字符串,代表需要安全检测的密码。
【输出描述】
对于每组数据输出一行,如果满足强度要求输出 Y,否则输出 N。
【样例输入1】
6PAs1s2an1a2bCql3Pa12bsnaab1da3cdPaabdbcdPa2【样例输出1】
YYYNNN【样例解释】
PAs1s2an 是安全密码(有8位、包含大写字母 P、A 和数字 1、2)。1a2bCql3 是安全密码(有8位、包含大写字母 C 和数字 1、2、3)。Pa12bsna 是安全密码(有8位、包含大写字母 P 和数字 1、2)。ab1da3cd 不是安全密码(没有大写字母)。Paabdbcd 不是安全密码(没有数字)。Pa2 不是安全密码(只有3位,太短了)。【数据范围】
对于所有测试点,保证 ,并且每组数据密码长度不超过 且至少为 。
参考程序:
'''[GESP202512 三级] 密码强度https://www.luogu.com.cn/problem/B4449'''T = int(input())for _ in range(T): s = input()if len(s) < 8: print("N")continue flag1, flag2 = False, Falsefor c in s:if"A" <= c <= "Z": flag1 = Trueif"0" <= c <= "9": flag2 = Trueif flag1 isFalseor flag2 isFalse: print("N")else: print("Y")青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
