import java.util.*; import java.util.regex.Pattern; import java.io.*; class IO { PrintWriter writer; BufferedReader reader; StringTokenizer tokenizer; public IO(InputStream in, OutputStream out) { reader = new BufferedReader(new InputStreamReader(in)); writer = new PrintWriter(out); tokenizer = new StringTokenizer(""); } public String next() { try { while(tokenizer == null || !tokenizer.hasMoreTokens()) { tokenizer = new StringTokenizer(reader.readLine()); } return tokenizer.nextToken(); } catch(IOException exc) { exc.printStackTrace(); return ""; } } public int nextInt() { return Integer.parseInt(next()); } public long nextLong() { return Long.parseLong(next()); } public double nextDouble() { return Double.parseDouble(next()); } public int[] nextIntArray(int n) { int[] arr = new int[n]; for(int i=0;i set = new HashSet(); for (Character character : specialCharacters.toCharArray()) { set.add(character); } Pattern d = Pattern.compile(digitPattern); Pattern u = Pattern.compile(upperPattern); Pattern l = Pattern.compile(lowerPattern); int length = password.length(); if(!d.matcher(password).find()) { length++; } if(!u.matcher(password).find()) { length++; } if(!l.matcher(password).find()) { length++; } boolean containsSpecial = false; for (Character character : password.toCharArray()) { if(set.contains(character)) { containsSpecial = true; } } if(!containsSpecial) { length++; } if(length < 6) { length = 6; } answer = Math.abs(password.length() - length) + ""; } public static void main(String args[]) { Question q = new Question(); q.solveTestCases(); } }