代码
#include <iostream>
using namespace std;
int statis(string str) {
int count[4] = {0};
for(int i=0; i<str.length(); i++) {
if(str.at(i)>='A' && str.at(i)<='Z') {
count[0] = 1;
} else if(str.at(i)>='a' && str.at(i)<='z') {
count[1] = 1;
} else if(str.at(i)>='0' && str.at(i)<='9') {
count[2] = 1;
} else {
count[3] = 1;
}
}
int sum = 0;
for(int i=0; i<4; i++) {
if(count[i]) {
sum++;
}
}
return sum;
}
int main() {
int M;
cin>>M;
for(int i=0; i<M; i++) {
string str;
cin>>str;
int sum = statis(str);
if(str.length()>=8 && str.length()<=16 && sum>=3) {
cout<<"YES"<<endl;
} else {
cout<<"NO"<<endl;
}
}
return 0;
}
注解
1、水题。
2、注意有效密码的长度限制。