题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import java.util.Scanner;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<String> list=new ArrayList<>();
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
list.add(line);
}
for (String s : list) {
if(s.length()<=8){
System.out.println("NG");
} else{
if(isLegal(s)&&isInnerStringNotRepeat(s))
System.out.println("OK");
else
System.out.println("NG");
}
}
}
public static boolean isLegal(String s) {
int[] count=new int[4];
for (int i = 0; i < s.length(); i++){
if(s.charAt(i) <= '9' && s.charAt(i) >= '0'){
count[0]=1;
} else if(s.charAt(i)<= 'Z' && s.charAt(i) >= 'A'){
count[1]=1;
} else if(s.charAt(i)<= 'z' && s.charAt(i) >= 'a'){
count[2]=1;
} else {
count[3]=1;
}
}
return count[0]+count[1]+count[2]+count[3]>=3;
}
private static boolean isInnerStringNotRepeat(String s) {
for (int i = 0; i < s.length()-3; i++){
String subStr = s.substring(i, i+3);
for (int j = i+1; j < s.length()-3; j++){
String subStr2 = s.substring(j, j+3);
if(subStr2.equals(subStr)) return false;
}
}
return true;
}
}

