题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
// mark一下啦
// 重点在于理解题意 重复字串
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String s = in.nextLine();
int length = s.length();
if (length <= 8) {
System.out.println("NG");
continue;
}
int lowerCaseNum = 0;
int upperCaseNum = 0;
int digitNum = 0;
int otherNum = 0;
for (int i = 0; i < length; i++) {
char c = s.charAt(i);
if (c >= 'a' && c <= 'z') {
lowerCaseNum++;
} else if (c >= 'A' && c <= 'Z') {
upperCaseNum++;
} else if (c >= '0' && c <= '9') {
digitNum++;
} else {
otherNum++;
}
}
lowerCaseNum = lowerCaseNum > 0 ? 1 : 0;
upperCaseNum = upperCaseNum > 0 ? 1 : 0;
digitNum = digitNum > 0 ? 1 : 0;
otherNum = otherNum > 0 ? 1 : 0;
int allNum = lowerCaseNum + upperCaseNum + digitNum + otherNum;
if (allNum < 3) {
System.out.println("NG");
continue;
}
boolean valid = true;
for (int i = 0 ; i < length - 3; i++) {
int j = i + 3;
String substr = s.substring(i, j);
if (s.indexOf(substr) != s.lastIndexOf(substr)) {
valid = false;
System.out.println("NG");
break;
}
}
if (!valid) {
continue;
}
System.out.println("OK");
}
}
}


科大讯飞公司氛围 452人发布