题目描述
小杨是学校网络安全小组的成员,今天他的任务是设计一个'密码强度检测器',帮助同学们检查自己的密码是否足够安全。一个安全的密码需要满足以下条件:
- 密码至少包含 8 个字符(太短的密码容易被猜出来哦!)。
- 密码至少包含一个大写字母(A、B、C、…、Z 都可以)。
- 密码至少包含一个数字(0、1、2、3、…、9 都可以)。
例如:
- 密码
PAs1s2an是安全密码(有 8 位、包含大写字母P、A和数字1、2)。 - 密码
ab1da3cd不是安全密码(没有大写字母)。 - 密码
Paabdbcd不是安全密码(没有数字)。 - 密码
Pa2不是安全密码(只有 3 位,太短了)。
输入格式
第一行一个正整数 T,代表需要安全检测的密码组数。
对于每组密码,一行包含一个字符串,代表需要安全检测的密码。
输出格式
对于每组密码,输出一行,如果满足强度要求输出 Y,否则输出 N。
输入输出样例 #1
输入 #1
6 PAs1s2an 1a2bCql3 Pa12bsna ab1da3cd Paabdbcd Pa2
输出 #1
Y Y Y N N N
说明/提示
样例解释
- 密码
PAs1s2an是安全密码(有 8 位、包含大写字母P、A和数字1、2)。 - 密码
1a2bCql3是安全密码(有 8 位、包含大写字母C和数字1、2、3)。 - 密码
Pa12bsna是安全密码(有 8 位、包含大写字母P和数字1、2)。 - 密码
ab1da3cd不是安全密码(没有大写字母)。 - 密码
Paabdbcd不是安全密码(没有数字)。 - 密码
Pa2不是安全密码(只有 3 位,太短了)。
数据范围
对于所有测试点,保证 1≤T≤100,并且每组密码长度不超过 100 且至少为 1,每组密码仅由大小写字母和数字组成。
题解:密码强度检测器
题目分析
本题要求我们实现一个密码强度检测器,判断每个输入的密码是否满足安全要求。安全密码需要同时满足以下三个必要条件(缺一不可):
- 密码长度至少为 8 个字符;
- 密码中至少包含一个大写字母(A-Z);
- 密码中至少包含一个数字(0-9)。
若三个条件全部满足,输出 Y;只要有一个条件不满足,输出 N。
解题思路
我的解题思路分为四步,按顺序处理每个测试用例,高效完成判断:

