题解 | #密码强度等级#

密码强度等级

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;
}

全部评论

相关推荐

寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务