hdu2043

#include <stdio.h>
#include <string.h>
char sign[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T'
,'U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'
,'u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','~','!','@','#','$','%','^'};
int main(){
    int ssign[4];
    char str[100];
    int success;
    int haha;
    int t,i,j,l;
    int cnt;
    while(~scanf("%d",&t)){
        getchar();
        while(t--){
            memset(ssign,0,sizeof(ssign));
            haha=0;
            gets(str);
            l=strlen(str);
            if(l<8||l>16)   {puts("NO");haha=1;continue;}
            for(i=0;i<l;++i){
                success=0;
                for(j=0;j<69;++j){
                    if(str[i]==sign[j]) {
                        success=1;
                        if(j>=0&&j<26) ssign[0]=1;
                        if(j>=26&&j<52) ssign[1]=1;
                        if(j>=52&&j<62) ssign[2]=1;
                        if(j>=62&&j<69) ssign[3]=1;
                    }
                }
                if(success==0) {puts("NO");haha=1;break;}
            }
            cnt=0;
            if(haha==0){
                for(i=0;i<4;++i)
                    if(ssign[i]==1) cnt++;
                if(cnt>=3){
                    puts("YES");
                }else puts("NO");
            }
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/symons1992/p/3406182.html