题解 | #密码强度等级#

密码强度等级

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]);
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务