题解 | #密码强度等级#浪费时间

密码强度等级

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String password = in.nextLine();
            System.out.println(passwordLevel(password));
        }
    }
    public static String passwordLevel(String password) {
        int score = 0;
        int len = password.length();
        if (len <= 4) {
            score = 5;
        } else if (len <= 7 && len >= 5) {
            score = 10;
        } else {
            score = 25;
        }
        int bigL = 0;
        int smallL = 0;
        int nums = 0;
        int symbol = 0;
        for (int i = 0; i < len; i++) {
            if (isBigLetter(password.charAt(i))) {
                bigL++;
            } else if (isSmallLetter(password.charAt(i))) {
                smallL++;
            } else if (isNumber(password.charAt(i))) {
                nums++;
            } else {
                symbol++;
            }
        }
        //统计大小写字母和数字、符号
        if (bigL >= 1 && smallL >= 1) {
            score += 20;
        } else if (bigL >= 1 || smallL >= 1) {
            score += 10;
        }
        if (nums == 1) {
            score += 10;
        } else if (nums > 1) {
            score += 20;
        }
        if (symbol == 1) {
            score += 10;
        } else if (symbol > 1) {
            score += 25;
        }

        if (bigL > 0 && smallL > 0 && nums > 0 && symbol > 0) {
            score += 5;
        } else if ((bigL > 0 || smallL > 0) && nums > 0 && symbol > 0) {
            score += 3;
        } else if ((bigL > 0 || smallL > 0) && nums > 0) {
            score += 2;
        }

        if (score >= 90) {
            return "VERY_SECURE";
        } else if (score >= 80) {
            return "SECURE";
        } else if (score >= 70) {
            return "VERY_STRONG";
        } else if (score >= 60) {
            return "STRONG";
        } else if (score >= 50) {
            return "AVERAGE";
        } else if (score >= 25) {
            return "WEAK";
        } else if (score >= 0) {
            return "VERY_WEAK";
        }
        return "VERY_WEAK";
    }
    public static boolean isBigLetter(char c) {
        if (c <= 'Z' && c >= 'A') {
            return true;
        }
        return false;
    }
    public static boolean isSmallLetter(char c) {
        if (c <= 'z' && c >= 'a') {
            return true;
        }
        return false;
    }
    public static boolean isNumber(char c) {
        if (c <= '9' && c >= '0') {
            return true;
        }
        return false;
    }

}

全部评论

相关推荐

最近群里有很多同学找我看简历,问问题,主要就是集中在明年三月份的暑期,我暑期还能进大厂嘛?我接下来该怎么做?对于我来说,我对于双非找实习的一个暴论就是title永远大于业务,你在大厂随随便便做点慢SQL治理加个索引,可能就能影响几千人,在小厂你从零到一搭建的系统可能只有几十个人在使用,量级是不一样的。对双非来说,最难的就是约面,怎么才能被大厂约面试?首先这需要一点运气,另外你也需要好的实习带给你的背书。有很多双非的同学在一些外包小厂待了四五个月,这样的产出有什么用呢?工厂的可视化大屏业务很广泛?产出无疑是重要的,但是得当你的实习公司到了一定的档次之后,比如你想走后端,那么中厂后端和大厂测开的选择,你可以选择中厂后端(注意,这里的中厂也得是一些人都知道的,比如哈啰,得物,b站之类,不是说人数超过500就叫中厂),只有这个时候你再去好好关注你的产出,要不就无脑大厂就完了。很多双非同学的误区就在这里,找到一份实习之后,就认为自己达到了阶段性的任务,根本不再投递简历,也不再提升自己,玩了几个月之后,美其名曰沉淀产出,真正的好产出能有多少呢?而实际上双非同学的第一份实习大部分都是工厂外包和政府外包!根本无产出可写😡😡😡!到了最后才发现晚了,所以对双非同学来说,不要放过任何一个从小到中,从中到大的机会,你得先有好的平台与title之后再考虑你的产出!因为那样你才将将能过了HR初筛!我认识一个双非同学,从浪潮到海康,每一段都呆不久,因为他在不断的投递和提升自己,最后去了美团,这才是双非应该做的,而我相信大部分的双非同学,在找到浪潮的那一刻就再也不会看八股,写算法,也不会打开ssob了,这才是你跟别人的差距。
迷茫的大四🐶:我也这样认为,title永远第一,只有名气大,才有人愿意了解你的简历
双非本科求职如何逆袭
点赞 评论 收藏
分享
12-24 20:49
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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