题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

#include <stdio.h>
#include <string.h>

int main() {
    int a, b;
    char str[105];
    while (scanf("%s", str) != EOF) { // 注意 while 处理多个 case
        int len=strlen(str);
        if(len<=8){
            printf("NG\n");
            continue;
        }
        int n1=0,n2=0,n3=0,n4=0;
        for(int i=0;str[i]!='\0';i++)
        {
            if(str[i]>='A'&&str[i]<='Z'){
                n1=1;
            }
            else if(str[i]>='a'&&str[i]<='z'){
                n2=1;
            }
            else if(str[i]>='0'&&str[i]<='9'){
                n3=1;
            }
            else{
                n4=1;
            }
        }
        int num=0;
        if(n1){
            num++;
        }
        if(n2){
            num++;
        }
        if(n3){
            num++;
        }
        if(n4){
            num++;
        }
        if(num<3){
            printf("NG\n");
            continue;
        }
        int flag=1;
        for(int i=3;i<len-1;i++)
            for(int j=0;j<len-i;j++){
                for(int k=j+1;k<len-i+1;k++){
                    int flag2=0;
                    for(int l=0;l<i;l++)
                        if(str[j+l]!=str[k+l]){
                            flag2=1;
                            break;
                        }
                    if(flag2==0){
                        flag=0;
                    }      
                }
            }
        if(flag==0){
            printf("NG\n");
            continue;
        }
        printf("OK\n");
    }

    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务