B3843 [GESP202306 三级] 密码合规 题解 题目描述网站注册需要有用户名和密码编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求 :只能由 a∼z 之间 26 个小写字母、A∼Z 之间 26 个大写字母、0∼9 之间 10 个数字以及!#$四个特殊字符构成。密码最短长度 :6 个字符密码最大长度 :12 个字符。大写字母小写字母和数字必须至少有其中两种以及至少有四个特殊字符中的一个。输入格式输入一行不含空格的字符串。约定长度不超过 100。该字符串被英文逗号分隔为多段作为多组被检测密码。输出格式输出若干行每行输出一组合规的密码。输出顺序以输入先后为序即先输入则先输出。输入输出样例输入 #1复制seHJ12!,sjdkffH$123,sdf!12HDHa!,123^YUhg!输出 #1复制seHJ12! sjdkffH$123说明/提示【样例 1 解释】输入被英文逗号分为了四组被检测密码seHJ12!、sjdkffH$123、sdf!12HDHa!、123^YUhg!。其中sdf!12HDHa!长度超过 12 个字符不合规123^YUhg!包含四个特殊字符之外的字符不合规。AC代码#includebits/stdc.h using namespace std; int main(){ string a,b; int s1,s2,s3,s4,s5; s1s2s3s4s50; cina; a,; for(int i0;ia.size();i){ if(a[i]!,){ if(a[i]a a[i]z){ s2; } else if(a[i]A a[i]Z){ s1; } else if(a[i]0 a[i]9){ s3; } else if(a[i] || a[i]! || a[i]# || a[i]$){ s4; } else{ s5; } ba[i]; } else{ b\0; //couts1 s2 s3 s4 s5 bendl; if(s41 s50){ if((s10 s30) || (s20 s30) || (s10 s20)){ if(b.size()7 b.size()13){ coutbendl; } } } b; s1s2s3s40; s50; } } return 0; }