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

密码验证合格程序

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

#include <stdio.h>
#include <string.h>
//思路超级清晰,一步步来,就是代码很长。
int main() {
    char str[102];
    while(scanf("%s",str)!=EOF)//一行行来处理
    {int l;
    int flag=1;
    int flagABC=0;
    int flagabc=0;
    int flagnum=0;
    int flagoth=0;
    l=strlen(str);
    if(l<=8) flag=0;//长度大于8
    for(int i=0;i<l;i++)//至少3种
    {
        char buf;
        buf=str[i];
        if((buf>='A')&&(buf<='Z')){
            flagABC++;
        }
        else if((buf>='a')&&(buf<='z')){
            flagabc++;
        }
        else if((buf>='0')&&(buf<='9')){
            flagnum++;
        }
        else if(buf!=0)
        {
            flagoth++;
        }
    }
    if(flagABC!=0) flagABC=1;
    if(flagabc!=0) flagabc=1;
    if(flagnum!=0) flagnum=1;
    if(flagoth!=0) flagoth=1;
    if((flagABC+flagabc+flagnum+flagoth)<3)
    {
          flag=0;
    }
    for(int i=0;i<l-6;i++)//检子串,如果连着四个字符相同则一定有连着三个相同的+一个相同的,所以只需检3个的
    {
        for(int j=i+3;j<(l-3);j++)
        {
            if((str[i]==str[j])&&(str[i+1]==str[j+1])&&(str[i+2]==str[j+2]))
            {
                flag=0;
            }
                    }
    }
    if(flag==0)
    {
        printf("NG\n");   }
    else {
    printf("OK\n");
    }
    }
}

全部评论

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务