题解 | #密码验证合格程序# Java bitSet
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import java.util.BitSet; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String s = in.nextLine(); System.out.println(check(s) ? "OK" : "NG"); } } public static boolean check(String s) { int n = s.length(); BitSet bs = new BitSet(4); if (n <= 8) return false; for (int i = 0; i < n; i++) { char c = s.charAt(i); if (c >= 'A' && c <= 'Z') bs.set(0); else if (c >= 'a' && c <= 'z') bs.set(1); else if (c >= '0' && c <= '9') bs.set(2); else bs.set(3); } Set<String> subStrSet = new HashSet<>(); for (int i = 0; i < n - 2; i++) { String subStr = s.substring(i, i + 3); if (!subStrSet.add(subStr)) return false; } return bs.cardinality() >= 3; } }