解题思路

  1. import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class Main1 {
    
     public static void main(String[] args) throws IOException {
    
         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
         String input = null;
         StringBuffer sb = new StringBuffer();
    
         while (null != (input = reader.readLine())) {
    
             //设置四种类型数据初始为空即false,有数据了就更改为true
             boolean[] flag = new boolean[4];
             char[] chars = input.toCharArray();
    
             // 第一个条件
             if (chars.length < 9) {
                 sb.append("NG").append("\n");
                 continue;
             }
    
             // 第二个条件
             for (int i = 0; i < chars.length; i++) {
                 if ('A' <= chars[i] && chars[i] <= 'Z') {
                     flag[0] = true;
                 } else if ('a' <= chars[i] && chars[i] <= 'z') {
                     flag[1] = true;
                 } else if ('0' <= chars[i] && chars[i] <= '9') {
                     flag[2] = true;
                 } else {
                     flag[3] = true;
                 }
             }
             int count = 0;
             for (int i = 0; i < 4; i++) {
                 if (flag[i]) {
                     count++;
                 }
             }
    
             // 第三个条件
             boolean sign = true;        //不存在两个大于2的子串相同,即!(i=i+3,i+1=i+4,i+2=i+5)
             for (int i = 0; i < chars.length - 5; i++) {
                 for (int j = i + 3; j < chars.length - 2; j++) {
                     if (chars[i] == chars[j] && chars[i + 1] == chars[j + 1] && chars[i + 2] == chars[j + 2]) {
                         sign = false;
                     }
                 }
             }
    
             if (count >= 3 && sign) {
                 sb.append("OK").append("\n");
             } else {
                 sb.append("NG").append("\n");
             }
         }
         String string = sb.toString();
         System.out.println( string.trim());
    
     }
    }