【牛客

it2026-03-30  7

牛牛的密码


链接:牛牛的密码 来源:牛客网

题目描述

牛牛在注册不同的网站时,总是会使用不同的密码来保证他的账号安全。 为了保证他的密码强度,牛牛使用他的“字符串筛选器”来测试密码的强度。 具体来说,他先将输入的字符串筛选分成四部分。

第一部分仅由小写英文字母组成

第二部分仅由大写英文字母组成

第三部分仅由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 1s100 对于40%40%的测试数据,保证仅有大小写英文字母组成,且 1 ≤ ∣ s ∣ ≤ 100 1≤∣s∣≤100 1s100 对于100%100%的测试数据,保证字符串是不含空格、回车、或者其他不可见字符的非空字符串,且保证字符串长度 1 ≤ ∣ s ∣ ≤ 1 0 4 1 ≤ ∣ s ∣ ≤ 10^4 1s104

解题思路

水题,模拟一遍就好了。 要不是为了水博客我都懒得写这一题

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"); }
最新回复(0)