题解 | #密码强度等级#

密码强度等级

http://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

根据描述写代码就可以,注意细节
#include "stdio.h"
#include "string.h"

int flag_1_1 = 0, flag_1_2 = 0;
int flag_2_1 = 0, flag_2_2 = 0;
int flag_3_1 = 0;
int flag_4_1 = 0;

int main(void) {
    int i = 0, t = 0, out = 0;
    char str[301] = {0};
    scanf("%s", str);

    int len = strlen(str);

    if (len <= 4) {
        out = 5;
    } else if (len <= 7) {
        out = 10;
    } else {
        out = 25;
    }

    for (i = 0; i < len; i++) {
        if (str[i] >= 'a' && str[i] <= 'z') {
            flag_2_1 ++;
        } else if (str[i] >= 'A' && str[i] <= 'Z') {
            flag_2_2 ++;
        } else if (str[i] >= '0' && str[i] <= '9') {
            flag_3_1 ++;
        } else if ((str[i] >= 0x21 && str[i] <= 0x2f) ||
                   (str[i] >= 0x3a && str[i] <= 0x40) ||
                   (str[i] >= 0x5b && str[i] <= 0x60) ||
                   (str[i] >= 0x7b && str[i] <= 0x7e)
                  ) {
            flag_4_1 ++;
        }
    }

    if (flag_2_1 && flag_2_2) {
        out += 20;
    } else if (flag_2_1 || flag_2_2) {
        out += 10;
    }

    if (flag_3_1 == 1) {
        out += 10;
    } else if (flag_3_1 > 1) {
        out += 20;
    }

    if (flag_4_1 == 1) {
        out += 10;
    } else if (flag_4_1 > 1) {
        out += 25;
    }

    if (flag_4_1 && flag_3_1 && flag_2_1 && flag_2_2) {
        out += 5;
    } else if (flag_4_1 && flag_3_1 && (flag_2_1 || flag_2_2)) {
        out += 3;
    } else if (flag_3_1 && (flag_2_1 || flag_2_2)) {
        out += 2;
    }


    if (out >= 90) {
        printf("VERY_SECURE");
    }else if (out >= 80) {
        printf("SECURE");
    }else if (out >= 70) {
        printf("VERY_STRONG");
    }else if (out >= 60) {
        printf("STRONG");
    }else if (out >= 50) {
        printf("AVERAGE");
    }else if (out >= 25) {
        printf("WEAK");
    }else if (out >= 0) {
        printf("VERY_WEAK");
    }
    return 0;
}


全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
耀孝女:就是你排序挂了
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务