牛牛的密码
链接:牛牛的密码 来源:牛客网
题目描述
牛牛在注册不同的网站时,总是会使用不同的密码来保证他的账号安全。 为了保证他的密码强度,牛牛使用他的“字符串筛选器”来测试密码的强度。 具体来说,他先将输入的字符串筛选分成四部分。
第一部分仅由小写英文字母组成
第二部分仅由大写英文字母组成
第三部分仅由0到9的数字组成
第四部分由其余特殊字符组成
这四部分要保留它们在原字符串中的相对顺序。
比如将"1q2w3E4R5{6}"这个字符串进行筛选后
四部分分别为:“qw”、“ER”、“123456”、"{}"。
然后只要某一部分不为空,牛牛就认为他的密码等级高1级。 密码等级最低为1级,最高4级。 例如"asdA@123"的密码等级为4,"20020101"的密码等级为1。
请帮助牛牛判断他注册账号时的密码等级,以及该密码做字符串筛选后的结果。
输入描述:
仅一行一个字符串s,表示牛牛的密码。
输出描述:
首先输出一行"password level:X",X表示牛牛的密码等级,最低为1级,最高4级。 接下来输出4行,表示四部分的筛选结果,输出时要注意保留它们在原字符串中的相对顺序,如果某一部分为空串,则改为在该行输出"(Null)"。
示例1
输入
123456
输出
password level
:1
(Null
)
(Null
)
123456
(Null
)
示例2
输入
Pass_Word
输出
password level
:3
assord
PW
(Null
)
_
备注:
对于20%20%的测试数据,保证仅有小写英文字母组成,且
1
≤
∣
s
∣
≤
100
1≤∣s∣≤100
1≤∣s∣≤100 对于40%40%的测试数据,保证仅有大小写英文字母组成,且
1
≤
∣
s
∣
≤
100
1≤∣s∣≤100
1≤∣s∣≤100 对于100%100%的测试数据,保证字符串是不含空格、回车、或者其他不可见字符的非空字符串,且保证字符串长度
1
≤
∣
s
∣
≤
1
0
4
1 ≤ ∣ s ∣ ≤ 10^4
1≤∣s∣≤104 。
解题思路
水题,模拟一遍就好了。 要不是为了水博客我都懒得写这一题
code
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std
;
char a
[1010];
char a1
[1010],a2
[1010],a3
[1010],a4
[1010];
int n
,n1
,n2
,n3
,n4
;
int ok1
,ok2
,ok3
,ok4
;
int main()
{
cin
>>a
;
n
=strlen(a
);
for(int i
=0;i
<n
;i
++)
{
if(a
[i
]>='a'&&a
[i
]<='z')
a1
[n1
++]=a
[i
],ok1
=1;
else if(a
[i
]>='A'&&a
[i
]<='Z')
a2
[n2
++]=a
[i
],ok2
=1;
else if(a
[i
]>='0'&&a
[i
]<='9')
a3
[n3
++]=a
[i
],ok3
=1;
else
a4
[n4
++]=a
[i
],ok4
=1;
}
printf("password level:%d\n",ok1
+ok2
+ok3
+ok4
);
if(strlen(a1
))
cout
<<a1
<<endl
;
else
printf("(Null)\n");
if(strlen(a2
))
cout
<<a2
<<endl
;
else
printf("(Null)\n");
if(strlen(a3
))
cout
<<a3
<<endl
;
else
printf("(Null)\n");
if(strlen(a4
))
cout
<<a4
<<endl
;
else
printf("(Null)\n");
}