题解 | #密码强度等级#

密码强度等级

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

细心就行了
#include<iostream>
#include<string>
#include <cstdio>
using namespace std;

int main(){
    string str;
    while(getline(cin,str)){
        int len=str.size();
        int score=0;
        //1密码长度
        if(len<=4) score+=5;
        else if(len>=5&&len<=7) score+=10;
        else  if(len>=8)score+=25;
        //字母
        int small_char=0;
        int big_char=0;
        for(int i=0;i<len;i++){
            if(islower(str[i])) small_char++;
            else if(isupper(str[i])) big_char++;
        }
        
        //密码里的字母全都是小写字母
        if(small_char==0&&big_char==0) score+=0;
        else if((small_char!=0&&big_char==0)||(small_char==0&&big_char!=0)) score+=10;
        else if(small_char!=0&&big_char!=0) score+=20;
        int letternum=small_char+big_char;
        //数字
        int num_dg=0;
        for(int i=0;i<len;i++){
            if(isdigit(str[i])) num_dg++;
        }
        if(num_dg==0) score+=0;
        else if(num_dg==1) score+=10;
        else if(num_dg>1)score+=20;
        //符号
        int fuhao_num;
        fuhao_num=len-small_char-big_char-num_dg;
        if(fuhao_num==0) score+=0;
        else if(fuhao_num==1) score+=10;
        else if(fuhao_num>1)score+=25;
        //奖励(只能选符合最多的那种奖励)
        int pay1=0,pay2=0,pay3=0;
        if(letternum!=0&&num_dg!=0) {
            pay1=2;
        }
        if(letternum!=0&&num_dg!=0&&fuhao_num!=0) {
            pay2=3;;
        }
        if(small_char!=0&&big_char!=0&&num_dg!=0&&fuhao_num!=0) {
           pay3=5;
        }
        int maxpay=max(max(pay1,pay2),pay3);
        score+=maxpay;
        //最后评分
        if(score>=90) cout<<"VERY_SECURE"<<endl;
        else if(score>=80) cout<<"SECURE"<<endl;
        else if(score>=70) cout<<"VERY_STRONG"<<endl;
        else if(score>=60) cout<<"STRONG"<<endl;
        else if(score>=50) cout<<"AVERAGE"<<endl;
        else if(score>=25) cout<<"WEAK"<<endl;
        else if(score>=0) cout<<"VERY_WEAK"<<endl;    
    }
    system("pause");
    return 0;
}

全部评论

相关推荐

肖先生~:大一点得到公司面试更能学到点东西
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
13410次浏览 129人参与
# AI面会问哪些问题? #
797次浏览 19人参与
# MiniMax求职进展汇总 #
24571次浏览 313人参与
# 你的实习产出是真实的还是包装的? #
2408次浏览 47人参与
# AI时代,哪个岗位还有“活路” #
2457次浏览 48人参与
# 长得好看会提高面试通过率吗? #
2297次浏览 39人参与
# 巨人网络春招 #
11454次浏览 224人参与
# 你做过最难的笔试是哪家公司 #
987次浏览 18人参与
# HR最不可信的一句话是__ #
896次浏览 31人参与
# 沪漂/北漂你觉得哪个更苦? #
882次浏览 29人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7887次浏览 43人参与
# XX请雇我工作 #
51097次浏览 171人参与
# 简历中的项目经历要怎么写? #
310744次浏览 4246人参与
# 简历第一个项目做什么 #
31952次浏览 354人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152720次浏览 888人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187478次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64371次浏览 856人参与
# 如果重来一次你还会读研吗 #
229936次浏览 2011人参与
# 正在春招的你,也参与了去年秋招吗? #
364020次浏览 2640人参与
# 腾讯音乐求职进展汇总 #
160792次浏览 1114人参与
# 你怎么看待AI面试 #
180514次浏览 1286人参与
# 投格力的你,拿到offer了吗? #
178023次浏览 889人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务