题解 | #密码验证合格程序#
密码验证合格程序
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"); } } } }