题解 | #密码强度等级#

密码强度等级

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        
            String pwd = in.nextLine();
            int len = len(pwd);
            int word = word(pwd);
            int digital= digital(pwd);
            int letter = letter(pwd);
            int sum = 0;

            if(word > 0 && digital > 0 && letter == 0){
                sum = len + word +digital + letter + 2;
            }else if(word > 0 && word < 20 && digital > 0 && letter > 0){
                sum = len + word +digital + letter + 3;
            }else if(word > 0 && word == 20 && digital > 0 && letter > 0){
                sum = len + word +digital + letter + 5;
            }else{
                sum = len + word +digital + letter;
            }
            // System.out.println("len:" + len);
            // System.out.println("word:" + word);
            // System.out.println("digital:" + digital);
            // System.out.println("letter:" + letter);
            // System.out.println("sum:" + sum);
            if(sum >= 90){              
                System.out.println("VERY_SECURE");
            }else if(sum >= 80){              
                System.out.println("SECURE");
            }else if(sum >= 70){              
                System.out.println("VERY_STRONG");
            }else if(sum >= 60){              
                System.out.println("STRONG");
            }else if(sum >= 50){              
                System.out.println("AVERAGE");
            }else if(sum >= 25){              
                System.out.println("WEAK");
            }else if(sum >= 0){              
                System.out.println("VERY_WEAK");
            }else{
                System.out.println("VERY_WEAK");
            }           
       
    }
    /**
    *计算长度分数
     */
    public static int len(String s){
            if(s.length() <= 4){
                return 5;
               
            }else if(s.length() >= 5 && s.length() <= 7){
                return 10;
                
            }else{
                return 25;
                
            }
    }

    /**
    *计算大小写字母分数
     */
    public static int word(String s){
        char[] ch = s.toCharArray();
        int low = 0;
        int up = 0;
        int other = 0;
        for(int i = 0;i < ch.length;i++){
            if(ch[i] >= 'a' && ch[i] <= 'z'){
                low++;
            }else if(ch[i] >= 'A' && ch[i] <= 'Z'){
                up++;
            }else{
                other++;
            }
        }
        if(low > 0 && up > 0){
            return 20;
        }else if(low == 0 && up == 0){
            return 0;
        }else if(low > 0 && up == 0){
            return 10;
        }else if(low == 0 && up > 0){
            return 10;
        }else{
            return 0;
        }
    }

    /**
    *计算数字分数
     */
    public static int digital(String s){
        char[] ch = s.toCharArray();
        int num = 0;
        int up = 0;
        int other = 0;
        for(int i = 0;i < ch.length;i++){
            if(ch[i] >= '0' && ch[i] <= '9'){
                num++;
            }else{
                other++;
            }
        }
        if(num == 0){
            return 0;
        }else if(num == 1){
            return 10;
        }else{
            return 20;
        }
    }

    /**
    *计算字符分数
     */
    public static int letter(String s){
        char[] ch = s.toCharArray();
        int num = 0;
        for(int i = 0;i < ch.length;i++){
            boolean flag = ch[i] < '0' || ch[i] > '9';
            boolean flag1 = ch[i] < 'a' || ch[i] > 'z';
            boolean flag2 = ch[i] < 'A' || ch[i] > 'Z';
            if(flag && flag1 && flag2){
                num++;
            }
        }
        if(num == 0){
            return 0;
        }else if(num == 1){
            return 10;
        }else{
            return 25;
        }
        
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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