#LQ1552. 设置密码

设置密码

问题描述

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

只能包含大小写字母,数字和特殊字符 ~!@#$%^&*()_,以上字符的 ASCIIASCII 码依次为: 126,33,64,35,36,37,94,38,42,40,41,95

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

强密码:密码长度 12≥12,同时包含大写字母,小写字母,数字,特殊字符,或包含包括特殊字符在内的其中三种,且特殊字符的种类数 3≥3

中密码:密码长度 8≥8,不属于强密码,至少有大写字母,小写字母,数字,特殊字符中的两种;

弱密码:密码长度 6≥6,不属于强密码或中密码。

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

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

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

输入格式

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

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

输出格式

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

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

评测用例规模与约定

对于 80%80\% 的评测用例,T=1T=1

对于所有评测用例,1T1051≤T≤10^51Si321≤|S_i|≤32,其中 Si|S_i| 表示 SiS_i​ 的长度。