3 a1b2c3d4 Linle@ACM ^~^@^@!%
NO YES NO
遇到的问题和解题思路:
表示因为strlen是没有算上’\0‘的这点忘了,然后一直判断的时候用的是17和9,所以wa。
水题。
给出代码:
#include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; bool indexx[4]; char pend[60]; int main(){ int n; scanf("%d",&n); getchar(); while(n--){ memset(indexx,0,sizeof(indexx)); scanf("%s",pend); int count1 = 0; //printf("%s\n",pend); for(int i = 0;i < strlen(pend);i++){ if(pend[i] >= 'a'&&pend[i] <= 'z')indexx[0] = true; else if(pend[i] >= 'A'&&pend[i] <= 'Z')indexx[1] = true; else if(pend[i] >= '1'&&pend[i] <= '9')indexx[2] = true; else if(pend[i] == '~'||pend[i] == '@'||pend[i] == '#'||pend[i] == '$' ||pend[i] == '%' ||pend[i] == '^')indexx[3]=true; } for(int i = 0;i < 4;i++){ if(indexx[i])count1++; } if(count1 >= 3&&strlen(pend)<=16&&strlen(pend)>=8)printf("YES\n"); else printf("NO\n"); } return 0; }