题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2043
最基础的模拟题目,只要按照题目给出的要求进行判断即可。
代码如下:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 const string s="~!@#$%^"; 5 string ss; 6 int n; 7 int yes(string a){ 8 if (a.size()<8 || a.size()>16) return 0; 9 int t1,t2,t3,t4; 10 t1=t2=t3=t4=0; 11 for (string::size_type i(0);i<a.size();i++){ 12 if (a[i]>='A'&&a[i]<='Z'){ 13 t1=1; 14 break; 15 } 16 } 17 for (string::size_type i(0);i<a.size();i++){ 18 if ((a[i]>='a')&&(a[i]<='z')){ 19 t2=1; 20 break; 21 } 22 } 23 for (string::size_type i(0);i<a.size();i++){ 24 if (a[i]>='0'&&a[i]<='9'){ 25 t3=1; 26 break; 27 } 28 } 29 for (string::size_type i(0);i<a.size();i++){ 30 if (s.find(a[i],0)!=string::npos){ 31 t4=1; 32 break; 33 } 34 } 35 if (t1+t2+t3+t4>2) return 1; 36 return 0; 37 } 38 int main(){ 39 scanf("%d\n",&n); 40 while (n--){ 41 getline(cin,ss); 42 if (yes(ss)) printf("YES\n"); 43 else printf("NO\n"); 44 } 45 return 0; 46 }
浙公网安备 33010602011771号