题目
为了保证他的密码强度,牛牛使用他的“字符串筛选器”来测试密码的强度。
具体来说,他先将输入的字符串筛选分成四部分。
第一部分仅由小写英文字母组成
第二部分仅由大写英文字母组成
第三部分仅由0到9的数字组成
第四部分由其余特殊字符组成
这四部分要保留它们在原字符串中的相对顺序。
比如将"1q2w3E4R5{6}"这个字符串进行筛选后
四部分分别为:"qw"、"ER"、"123456"、"{}"。
然后只要某一部分不为空,牛牛就认为他的密码等级高1级。
密码等级最低为1级,最高4级。
例如,"asdA@123"的密码等级为4,"20020101"的密码等级为1。
请判断密码等级,输出该密码做字符串筛选后的结果。
解题思路
遍历密码字符串中的字符,模拟题意中的字符串筛选器进行筛选,最后输出结果。
C++代码
#include<iostream> #include<vector> using namespace std; int main(){ string s; cin >> s; vector<string> t(4, ""); for(auto c : s){ if(c>='a' && c<='z') t[0] += c; else if(c>='A' && c<='Z') t[1] += c; else if(c>='0' && c<='9') t[2] += c; else t[3] += c; } int level = 0; for(int i=0; i<4; ++i){ if(t[i]=="") t[i]="(Null)"; else ++level; } cout << "password level:" << level << endl; for(int i=0; i<4; ++i) cout << t[i] << endl; return 0; }