static void solve() throws NumberFormatException, IOException {
        String p = next();
        long sc = 0;
        int len = p.length();
        if (len <= 4) sc += 5;
        else if (len <= 7) sc += 10;
        else sc += 25;
        boolean lwr = p.matches(".*[a-z].*");
        boolean upr = p.matches(".*[A-Z].*");
        int ls = 0;
        if (lwr || upr) ls = (lwr && upr) ? 20 : 10;
        sc += ls;
        int dc = p.replaceAll("[^0-9]", "").length();
        if (dc == 1) sc += 10;
        else if (dc > 1) sc += 20;
        int sym = p.replaceAll("[^!-/:-@\\[-`{-~]", "").length();
        if (sym == 1) sc += 10;
        else if (sym > 1) sc += 25;
        int rw = 0;
        boolean let = lwr || upr;
        boolean dig = dc > 0;
        boolean symF = sym > 0;
        if (lwr && upr && dig && symF) rw = 5;
        else if (let && dig && symF) rw = 3;
        else if (let && dig) rw = 2;
        sc += rw;
        String res;
        if (sc >= 90) res = "VERY_SECURE";
        else if (sc >= 80) res = "SECURE";
        else if (sc >= 70) res = "VERY_STRONG";
        else if (sc >= 60) res = "STRONG";
        else if (sc >= 50) res = "AVERAGE";
        else if (sc >= 25) res = "WEAK";
        else res = "VERY_WEAK";
        
        println(res);
    }

读题我们发现这就是很长但是很简单的暴力判断,所以我们选择用java的正则表达式这个对于字符串的匹配用起来很方便的方法

#牛客春招刷题训练营#https://www.nowcoder.com/creation/subject/d90225fecf404712be5150c470bffc45#牛客春招刷题训练营#