题解 | #密码验证合格程序#
密码验证合格程序
http://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
长度小于9,pass; 是否重复每次取三个字符看字符串后面是否也出现; 最后判断四满足三,用正则表达式即可; import java.util.Scanner; import java.util.regex.Pattern; import java.util.regex.Matcher; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); boolean code=true; while (in.hasNextLine()) { code=true; String s = in.nextLine(); if(s.length()<9){ System.out.println("NG"); continue; } for(int i=0;i<s.length()-6;i++){ String sub=s.substring(i,i+3); if(s.substring(i+3).contains(sub)){ code=false; break; } } if(!code){ System.out.println("NG"); continue; } else if(iscode(s)){ System.out.println("OK"); continue; } else{ System.out.println("NG"); continue; } } } public static boolean iscode(String s){ String pattern1=".[0-9]."; String pattern2=".[a-z]."; String pattern3=".[A-Z]."; String pattern4=".[^0-9^a-z^A-Z]."; boolean isMatch1 = Pattern.matches(pattern1, s); boolean isMatch2 = Pattern.matches(pattern2, s); boolean isMatch3 = Pattern.matches(pattern3, s); boolean isMatch4 = Pattern.matches(pattern4, s); return isMatch1&&isMatch2&&isMatch3 || isMatch1&&isMatch3&&isMatch4 || isMatch1&&isMatch2&&isMatch4 ||isMatch2&&isMatch3&&isMatch4; } }
