题解 | #密码强度等级#
密码强度等级
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);
String pswd = in.nextLine();
int len = pswd.length();
if(len<1 || len>300 || "".equals(pswd)) return;
int score = calScore(pswd);
if(score >= 90) System.out.println("VERY_SECURE");
else if(score >= 80) System.out.println("SECURE");
else if(score >= 70) System.out.println("VERY_STRONG");
else if(score >= 60) System.out.println("STRONG");
else if(score >= 50) System.out.println("AVERAGE");
else if(score >= 25) System.out.println("WEAK");
else System.out.println("VERY_WEAK");
}
public static int calScore(String s){
int res = 0;
if(s.length() >= 8) res+=25;
else if(s.length()>=5 && s.length()<=7) res+=10;
else res+=5;
int countN = 0;
int countS = 0;
int countE = 0;
int counte = 0;
for(int i=0; i<s.length(); i++){
char c = s.charAt(i);
if(c>='0' && c<='9') countN++;
//if((c>='!' && c<='/') || (c>=':' && c<='@') || (c>='[' && c<='`') || (c>='{' && c<='~'))
if((c>=0x21 && c<=0x2F) || (c>=0x3A && c<=0x40) || (c>=0x5B && c<=0x60) || (c>=0x7B && c<=0x7E))
countS++;
if(c>='a' && c<='z') counte++;
else if(c>='A' && c<='Z') countE++;
}
if(countS > 1) res+=25;
else if(countS == 1) res+=10;
if(countN > 1) res+= 20;
else if(countN == 1) res+=10;
if(countE>0 && counte>0) res+=20;
else if(countE>0 || counte>0) res+=10;
if(countE>0 && counte>0 && countN>0 && countS>0) res+=5;
else if((counte + countE)>0 && countN>0 && countS>0) res+=3;
else if((counte + countE)>0 && countN>0) res+=2;
return res;
}
}
顺丰集团工作强度 274人发布