题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import java.util.Scanner;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int category=0;
String target = in.next();
//判断长度>8
if (checkLength((target))){
System.out.println("NG");
continue;
}
//判断是否包含三种元素
if (!checkClass(target)){
System.out.println("NG");
continue;
}
//判断是否有重复子串
if (checkRule(target,0,3)){
System.out.println("NG");
continue;
}
System.out.println("OK");
}
}
private static boolean checkRule(String target, int str, int end) {
if (end >= target.length()) {
return false;
}
if (target.substring(end).contains(target.substring(str, end))) {
return true;
} else {
return checkRule(target, str + 1, end + 1);
}
}
private static boolean checkClass(String str) {
int count = 0;
//大写字母
Pattern p1 = Pattern.compile("[A-Z]");
if (p1.matcher(str).find()) {
count++;
}
//小写字母
Pattern p2 = Pattern.compile("[a-z]");
if (p2.matcher(str).find()) {
count++;
}
//数字
Pattern p3 = Pattern.compile("[0-9]");
if (p3.matcher(str).find()) {
count++;
}
//字符
Pattern p4 = Pattern.compile("[^a-zA-Z0-9\\x0a]");
if (p4.matcher(str).find()) {
count++;
}
if (count >= 3) {
return true;
}
return false;
}
private static boolean checkLength(String target) {
return target.length() <= 8;
}
}
花费一小时才解决
海康威视公司福利 1139人发布
查看3道真题和解析