描述
网站提示,密码必须由 8∼16 个字符组成,可以包含数字、大写字母、小写字母、特殊符号这4种字符类型。注:特殊符号只包含: !、@、#、$、%、^、&、*、(、)、_、+、-、=
以下是三种强度密码的设计规则:
1.包含 4 种不同类型字符的密码是强密码。
2.包含 2 种或 3 种不同类型字符的密码是中等密码。
3.只包含 1 种类型字符的密码是弱密码。
输入描述
第一行输入一个正整数 N(4≤N≤10),表示密码的个数接下来的 N 行,每行输入一个宁符串 Si(8<=Si的长度<=16),表示一个密码,密码中可能包合数子、大写字母、小写字母、特殊符号这 4 种字符类型,且不含空格字符。
输出描述
共 N 行,每行输出一个整数 Ri ( Ri只能是 0、1、2 ),依次表示对应密码 si 的强度
如果 si 是强密码,则输出 2。
如果 si 是中等密码,则输出 1。
如果 si 是弱察码,则输出 0。
样例输入 1
1 1Aa@1Aa@
样例输出 1
2
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;//n负责输入
int a1[10]={0},a2[10]={0},a3[10]={0},a4[10]={0};/*表示数字(a1)、大写字母(a2)、小写字母(a3)、特殊符号(a4)*/
char a[16];//题目说密码不超过16
cin>>n;
for(int i=0;i<=n;i++)
{
cin>>a;//输入n行代码
for(int j=0;a[j]!=0;j++)//无限模式
{
if(a[j]>='0'&&a[j]<='9')//如果是数字
a1[i]=1;
else if(a[j]>='a'&&a[j]<='z')//如果是小写字母
a2[i]=1;
else if(a[j]>='A'&&a[j]<='Z')//如果是大写字母
a3[i]=1;
else//特殊符号
a4[i]=1;
}
}
for(int i=0;i<n;i++)
{
if(a1[i]+a2[i]+a3[i]+a4[i]==1)//如果只有一种的话,那么只有1
cout<<0<<endl;
else if(a1[i]+a2[i]+a3[i]+a4[i]==2||a1[i]+a2[i]+a3[i]+a4[i]==3)/*两种或三种*/
cout<<1<<endl;
else if(a1[i]+a2[i]+a3[i]+a4[i]==4)//如果有4种
cout<<2<<endl;
}
return 0;
}