题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
// mark一下啦 // 重点在于理解题意 重复字串 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String s = in.nextLine(); int length = s.length(); if (length <= 8) { System.out.println("NG"); continue; } int lowerCaseNum = 0; int upperCaseNum = 0; int digitNum = 0; int otherNum = 0; for (int i = 0; i < length; i++) { char c = s.charAt(i); if (c >= 'a' && c <= 'z') { lowerCaseNum++; } else if (c >= 'A' && c <= 'Z') { upperCaseNum++; } else if (c >= '0' && c <= '9') { digitNum++; } else { otherNum++; } } lowerCaseNum = lowerCaseNum > 0 ? 1 : 0; upperCaseNum = upperCaseNum > 0 ? 1 : 0; digitNum = digitNum > 0 ? 1 : 0; otherNum = otherNum > 0 ? 1 : 0; int allNum = lowerCaseNum + upperCaseNum + digitNum + otherNum; if (allNum < 3) { System.out.println("NG"); continue; } boolean valid = true; for (int i = 0 ; i < length - 3; i++) { int j = i + 3; String substr = s.substring(i, j); if (s.indexOf(substr) != s.lastIndexOf(substr)) { valid = false; System.out.println("NG"); break; } } if (!valid) { continue; } System.out.println("OK"); } } }