#P12278. [蓝桥杯 2024 国 Python A] 设置密码

[蓝桥杯 2024 国 Python A] 设置密码

题目描述

小蓝设计了一个管理系统,管理系统需要支持设置用户的密码,并给出密码的强度。合法密码要求如下:

只能包含大小写字母、数字和特殊字符 ~!@#$%^&*()_,以上字符的 ASCII 码依次为: 12612633336464353536363737949438384242404041419595

密码的强度按下列方式判断:

  • 强密码: 密码长度 12\geq 12 ,同时包含大写字母、小写字母、数字、特殊字符,或包含包括特殊字符在内的其中三种,且特殊字符的种类数 3\geq 3
  • 中密码: 密码长度 8\geq 8 ,不属于强密码,至少有大写字母、小写字母、数字、特殊字符中的两种;
  • 弱密码: 密码长度 6\geq 6 ,不属于强密码或中密码。

三者都不是的密码同样视为不合法的密码。

给定若干个字符串 (每行一个),判断其是否能作为密码,能作为密码时判断密码的强度。

对每个字符串输出 0,1,2,30,1,2,3 中的一个,分别对应不合法的密码、弱密码、中密码、强密码四种情况。

输入格式

输入的第一行包含一个整数 TT ,表示需要判断的密码的个数。

接下来 TT 行,每行包含一个字符串 SiS_i ,表示一个需要判断的密码。保证每个字符串中仅包含 ASCII 码中的可打印字符(ASCII 码在 3232126126 之间,包含 3232126126)。

输出格式

输出 TT 行,每行包含一个数字 AiA_i 表示第 ii 个密码的强度。

4
@Qaq1
123456
lanqiao2024
a1@R7c1h(GO*q3)
0
1
2
3

提示

评测用例规模与约定

  • 对于 80%80\% 的评测用例,T=1T = 1
  • 对于所有评测用例,1T1051 \leq T \leq 10^51Si321 \leq |S_i| \leq 32,其中 Si|S_i| 表示 SiS_i 的长度。