题解 | #密码强度等级#
密码强度等级
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) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String a; String[] lvs = new String[] {"VERY_SECURE", "SECURE", "VERY_STRONG", "STRONG", "AVERAGE", "WEAK", "VERY_WEAK"}; try { a = in.readLine(); } catch (IOException e) { throw new RuntimeException(e); } char[] charAy = a.toCharArray(); int i = 0, l = charAy.length, score = 0, sw = 0, bw = 0, num = 0, elw = 0; if (l < 5) score += 5; else if (l < 8) score += 10; else score += 25; while (i < l) { if ((charAy[i] - 'a' | 'z' - charAy[i]) > 0) sw++; else if ((charAy[i] - 'A' | 'Z' - charAy[i]) > 0) bw++; else if ((charAy[i] - '0' | '9' - charAy[i]) > 0) num++; else elw++; i++; } if (sw > 0 && bw == 0 || sw == 0 && bw > 0) score += 10; else if (sw > 0 && bw > 0) score += 20; if (num == 1) score += 10; else if (num > 1) score += 20; if (elw == 1) score += 10; else if (elw > 1) score += 25; if (sw != 0 && bw != 0 && num != 0 && elw != 0) score += 5; else if (sw == 0 && elw == 0 && bw > 0 && num > 0) score += 2; else if (bw == 0 && elw == 0 && sw > 0 && num > 0) score += 2; else if (sw == 0 && elw > 0 && bw > 0 && num > 0) score += 3; else if (bw == 0 && elw > 0 && sw > 0 && num > 0) score += 3; i = score / 10; i = 9 - i; if (i < 5) System.out.print(lvs[i]); else if (score > 24) System.out.print(lvs[5]); else System.out.print(lvs[6]); } }