题解 | #密码强度等级#

密码强度等级

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while((str = br.readLine()) != null) {
            int score = 0;
            int lengthScore = lengthCheck(str,score);
            int letterScore = letterCheck(str,score);
            int numberScore = numberCheck(str,score);
            int simbleScore = simbleCheck(str,score);
            int pensionScore = pensionCheck(letterScore, numberScore, simbleScore, score);
            score = lengthScore + letterScore + numberScore + simbleScore + pensionScore;
            // System.out.println("score = " + score);
            result(score);

        }
    }
    private static int lengthCheck(String str,int num) {
        if(str.length() <= 4) {
            num += 5;
        }else if(str.length() >= 5 && str.length() <= 7) {
            num += 10;
        }else if(str.length() >= 8) {
            num += 25;
        }
        // System.out.println("lengthCheck:"+num);
        return num;
    }
    private static int letterCheck(String str,int num) {
        if(str.replaceAll("[A-Za-z]+", "").length() == str.length()) {
            num += 0;
            // System.out.println("0");
        }else if(str.replaceAll("[A-Z]+", "").length() == str.replaceAll("[A-Za-z]+", "").length()) {
            num += 10;
            // System.out.println("1");
        }else if(str.replaceAll("[a-z]+", "").length() == str.replaceAll("[A-Za-z]+", "").length()) {
            num += 10;
            // System.out.println("2");
        }
        else {
            num += 20;
            // System.out.println("3");
        }
        // System.out.println("letterCheck:"+num);
        return num;
    }
    private static int numberCheck(String str,int num) {
        if(str.replaceAll("[0-9]+", "") == str) {
            num += 0;
        }else if (str.length()-str.replaceAll("[0-9]+", "").length() == 1) {
            num += 10;

        }else {
            num += 20;

        }
        // System.out.println("numberCheck:"+num);
        return num;
    }
    private static int simbleCheck(String str,int num) {
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if(c >= 0x21 && c <= 0x2F) count++;
            if(c >= 0x3A && c <= 0x40) count++;
            if(c >= 0x5B && c <= 0x60) count++;
            if(c >= 0x7B && c <= 0x7E) count++;
        }
        if(count == 0) num+= 0;
        else if(count == 1) num +=10;
        else num+=25;
        // System.out.println("simbleCheck:"+num);
        return num;
    }
    private static int pensionCheck(int flag1, int flag2 ,int flag3, int num) {
        if(flag1 >= 20 && flag2 > 0  && flag3 > 0) {
            num += 5;
        }else if(flag1 > 0 && flag2 > 0 && flag3 > 0) {
            num += 3;
        }else if(flag1 > 0 && flag2 > 0) {
            num += 2;
        }
        // System.out.println("pensionCheck:"+num);
        return num;
    }
    private static void result(int n) {
        if(n >= 90) System.out.println("VERY_SECURE");
        else if(n >= 80) System.out.println("SECURE");
        else if(n >= 70) System.out.println("VERY_STRONG");
        else if(n >= 60) System.out.println("STRONG");
        else if(n >= 50) System.out.println("AVERAGE");
        else if(n >= 25) System.out.println("WEAK");
        else if(n >= 0)  System.out.println("VERY_WEAK");
    }
}

全部评论

相关推荐

会不会进去就面临裁员啊....
MellowWW:我朋友签的美区销售岗,这才是天崩开局
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务