题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextLine()) { // 注意 while 处理多个 case String str = in.nextLine(); boolean[] arr = new boolean[4]; int count = 0; boolean flag = false; if (str.length() <= 8) { System.out.println("NG"); } else { for (int i = 0; i < str.length(); i++) { if ( str.charAt(i) >= 'a' && str.charAt(i) <= 'z') { arr[0] = true; } else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') { arr[1] = true; } else if (str.charAt(i) >= '0' && str.charAt(i) <= '9') { arr[2] = true; } else if (str.charAt(i) == '\n' || str.charAt(i) == ' ') { System.out.println("NG"); flag = true; break; } else { arr[3] = true; } } if ( isExist(str, 0, 3)) { System.out.println("NG"); flag = true; } if (flag == false){ for (int i = 0; i < arr.length; i++) { if (arr[i] == true) { count++; } } if (count >= 3) { System.out.println("OK"); } } } } } static boolean isExist(String str, int i, int j) { if (j > str.length() -3 ) {//0123456 j = 3,len = 7 ,sub = 3 return false; } else { if (str.substring(j).contains(str.substring(i, j))) { return true; } else { //j = 4, i = 1, 4 return isExist(str,i + 1, j + 1); } } } }