题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
有点费脑子,不过做出来了,公共元素那块没有想象中的那么复杂。
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String s = in.nextLine();
String flag = "T";
if (s.length() >= 8) {
int a = 0, b = 0, c = 0, d = 0;
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch >= 'A' && ch <= 'Z') {
a = 1;
} else if (ch >= 'a' && ch <= 'z') {
b = 1;
} else if ( ch >= '0' && ch <= '9') {
c = 1;
} else {
if (ch == ' ' || ch == '\n') {
flag = "F";
break;
}
d = 1;
}
}
if ("T".equals(flag) && a + b + c + d >= 3 && s.length()>=4) {
// 公共元素
String ss;
for (int i = 4; i < s.length(); i++) {
ss = s.charAt(i-2)+""+s.charAt(i-1)+""+s.charAt(i);
String newS = s.substring(0,i-3);
if(newS.contains(ss)){
flag = "F";
break;
}
}
} else {
flag = "F";
}
// System.out.print(a + " " + b + " " + c + " " + d + " ");
} else {
flag = "F";
}
if ("T".equals(flag)) {
System.out.println("OK");
} else {
System.out.println("NG");
}
}
}
}


