主要是要理解条件三的含义,不具有公共元素,且长度大于2,利用HashMap解决重复问题。
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str;
Map<String,Integer> map;
while(sc.hasNext()){
str = sc.nextLine();
if(str.length()<=8){
System.out.println("NG");
continue;
}
char ch;
int count1=0;
int count2=0;
int count3=0;
int count4=0;
for(int i=0;i<str.length();i++){
if(count1+count2+count3+count4>=3){
break;
}
ch = str.charAt(i);
if(ch>='a' && ch<='z'){
count1=1;
}
else if(ch>='A' && ch<='Z'){
count2=1;
}
else if(ch>='0' && ch<='9'){
count3=1;
}
else{
count4=1;
}
}
if(count1+count2+count3+count4<3){
System.out.println("NG");
continue;
}
map = new HashMap<>();
int flag = 0;
for(int i=0;i<str.length()-3;i++){
String str1 = str.substring(i,i+3);
if(!map.containsKey(str1)){
map.put(str1,i);
}
else{
if(i-map.get(str1)>=3){
System.out.println("NG");
flag=1;
break;
}
}
}
if(flag==0){
System.out.println("OK");
}
}
}
}