import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int minimumNumber(int n, String password) { int count=0; boolean hasDigit=check(password, new Check() { @Override public boolean isAcceptable(char c) { return Character.isDigit(c); } }); boolean hasLowerCase=check(password, new Check() { @Override public boolean isAcceptable(char c) { return Character.isLowerCase(c); } }); boolean hasUpperCase=check(password, new Check() { @Override public boolean isAcceptable(char c) { return Character.isUpperCase(c); } }); boolean hasSpecial=check(password, new Check() { @Override public boolean isAcceptable(char c) { return "!@#$%^&*()-+".indexOf(c)>=0; } }); if(!hasDigit) count++; if(!hasLowerCase) count++; if(!hasUpperCase) count++; if(!hasSpecial) count++; count+=Math.max((6-(password.length()+count)), 0); return count; } private static boolean check(String s, Check check) { for(int i=0; i