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

密码验证合格程序

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

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

int test1(char* str){
    return strlen(str)>9;
}

int test2(char* str){
    int i=0,up=0,low=0,dig=0,other=0;
    while(str[i]){
        
        if(isupper(str[i]))
            up=1;
        else if(islower(str[i]))
            low=1;
        else if(isdigit(str[i]))
            dig=1;
        else if(str[i]!=' '&&str[i]!='\n')
            other=1;
        
        i++;
    }
    return up+low+dig+other>2;
}
int isequal(char*str,int i,int j){
    if(str[i]==str[j]&&str[i+1]==str[j+1]&&str[i+2]==str[j+2]){
        return 1;
    }
    return 0;
}
int test3(char* str){
    int i,j,len=strlen(str);
    for(i=0;i<len-5;i++){
        for(j=i+3;j<len-2;j++){
            if(isequal(str,i,j))return 0;
        }
    }
    return 1;
}

int main(){
    char str[101];
    while(fgets(str,101,stdin)){
        printf("%s",test1(str)&&test2(str)&&test3(str)?"OK\n":"NG\n");
    }
}
全部评论
优点是功能模块化,缺点是需要遍历3遍字符串。
1 回复 分享
发布于 2022-08-11 22:26

相关推荐

不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
10
5
分享

创作者周榜

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