题解 | #密码检查#

密码检查

https://www.nowcoder.com/practice/f2fbd8f61c564ca0b5feaa63ab42dae5

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

int main() {
    int x;
    char n[100] = {0};
    scanf("%d", &x);

    while (x--) {
        //逻辑上没问题,因为是 多组输入、数组长度和两种字符,所以都要放循环
        scanf("%s", n);
        int flag1 = 0, flag2 = 0, flag3 = 0;
        int len = strlen(n);
        //第一个为数字和最少长度为8
        if (n[0] >= '0' && n[0] <= '9' || len < 8) 
        {
            printf("NO\n");
        } 
        else 
        {
            //任意两种即可
            for (int i = 0; i < len; i++) {
			  	//3种情况之外
                if (n[i] < 48 || n[i] >= 58 && n[i] <= 64 || n[i] >= 91 && n[i] <= 96 ||n[i] > 122) 
                {
                    printf("NO\n");
                } 
                else 
                {
                    if (n[i] >= 'a' && n[i] <= 'z') {
                        flag1 = 1;
                    }
                    if (n[i] >= 'A' && n[i] <= 'Z') {
                        flag2 = 1;
                    }
                    if (n[i] >= '0' && n[i] <= '9') {
                        flag3 = 1;
                    }
                }
            }
            //满足条件输出YES
            if ((flag1 + flag2 + flag3) >= 2)
                printf("YES\n");
            else //测试用例不够,如果只有全是一种字符的情况,不输出
                printf("NO\n");
        }
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 12:22
点赞 评论 收藏
分享
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
争当牛马还争不上
码农索隆:1.把简历改哈 2.猛投,狠投 3.把基础打牢 这样你在有机会的时候,才能抓住
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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