返回首页 返回题库

密码强度

C++ 简单 GESP三级真题 #字符串

题目描述

题面描述

小杨是学校网络安全小组的成员,今天他的任务是设计一个“密码强度检测器”,帮助同学们检查自己的密码是否足够安全。一个安全的密码需要满足以下条件:

  • 密码至少包含8个字符(太短的密码容易被猜出来哦!)。
  • 密码至少包含一个大写字母(A、B、C、...、Z 都可以)。
  • 密码至少包含一个数字(0、1、2、3、...、9 都可以)。

例如:

  • 密码 PAs1s2an 是安全密码(有8位、包含大写字母 P 、 A 和数字 1 、 2 )。
  • 密码 ab1da3cd 不是安全密码(没有大写字母)。
  • 密码 Paabdbcd 不是安全密码(没有数字)。
  • 密码 Pa2 不是安全密码(只有3位,太短了)。


输入格式

第一行一个正整数 T,代表需要安全检测的密码组数。

对于每组密码,一行包含一个字符串,代表需要安全检测的密码。


输出格式

对于每组密码,输出一行,如果满足强度要求输出 Y,否则输出 N。


样例1

输入:

6
PAs1s2an
1a2bCq13
Pa12bsna
ab1da3cd
Paabdbcd
Pa2

输出:

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,每组密码仅由大小写字母和数字组成。


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察字符串的遍历、布尔变量的使用与条件判断的组合。可使用 isupper() 函数判断字符是否为大写字母,isdigit() 函数判断字符是否为数字;记得同时满足三个条件才输出 Y。
⚙ 开始做这道题 1 人做过 · 2 收藏 · 16 浏览

讨论(0)