C语言 | #密码验证合格程序#,基础暴力解法

密码验证合格程序

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

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

int main(){
char str[1000];
while(gets(str)){
    int i,j;
    int len,flag;
    int a1=0,a2=0,a3=0,a4=0;
    len=strlen(str);
    
    //判断长度
    if(len<9)
        printf("NG\n");
    else{
    //如果长度满足,进行类型判断
        for(i=0;i<len;i++){
            if(str[i]>='a'&&str[i]<='z')
                a1=1;
            else if(str[i]>='A'&&str[i]<='Z')
                a2=1;
            else if(str[i]>='0'&&str[i]<='9')
                a3=1;
            else 
                a4=1;
            }
        if(a1+a2+a3+a4<3)
            printf("NG\n");
        //如果类型也满足,开始判断公共子串
        else{
            flag=0;
            for(i=0;i<len-6;i++)
            {
                for(j=i+3;j<len-3;j++)
                    if(str[j]==str[i]&&str[j+1]==str[i+1]&&str[j+2]==str[i+2])
                        flag=1;
            }
            if(flag==1)
                printf("NG\n");
            else
                printf("OK\n");
        }
    }
  }
}
全部评论
循环遍历少了一次,1234Az123应该是NG,程序运行时OK
4 回复 分享
发布于 2022-07-04 11:01
为什么显示时间复杂度过大啊
2 回复 分享
发布于 2022-04-13 20:46

相关推荐

不愿透露姓名的神秘牛友
昨天 18:30
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
06-19 13:40
武汉大学 Java
点赞 评论 收藏
分享
评论
28
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务