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

密码验证合格程序

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

#include <stdio.h>

int main()
{
    char str[100]={'\0'};
    while(scanf("%s",&str)!=EOF)
    {

        int type[4]={0};//各种种类的密码是否出现过
        int dif=0;//记录密码中字符的种类
        int len=0;//密码串的长度
        char substr[3]={'\0'};//记录长度为3的子串
        int sub=0;//记录是否有长度超过2的重复子串
        int i,j,k=0;

        len=strlen(str);

        //含有的字符种类判断
        for(i=0;i<len;i++)
        {
            if(str[i]>='A'&&str[i]<='Z')
                type[0]=1;
            else if(str[i]>='a'&&str[i]<='z')
                   type[1]=1;
            else if(str[i]>='0'&&str[i]<='9')
                    type[2]=1;
            else
            type[3]=1;
        }
        dif=type[0]+type[1]+type[2]+type[3];

        //判断是否有重复的子串
        for(i=0;i<(len-3);i++)
        {
            substr[0]=str[i];substr[1]=str[i+1];substr[2]=str[i+2];
            for(j=i+3;j<(len-3);j++)
            {
                if(str[j]==substr[0])
                {
                    if(str[j+1]==substr[1])
                    {
                        if(str[j+2]==substr[2])
                        {
                            sub=1;
                        }
                    }
                }
            }
        }

        //总判断是否符合要求
        if(sub==0&&dif>=3)
        {
            if(len>8)
                printf("OK\n");
            else
                printf("NG\n");
        }
        else
            printf("NG\n");
    }
    return 0;
}
全部评论

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务