题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
ArrayList<String> arr = new ArrayList<>();
while (sc.hasNext()){
String s =sc.next();
if(s.length()>=8){
int[] flag=new int[4];
//0 大写; 1 小写;2 数字;3其他符号
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i)>='A'&&s.charAt(i)<='Z')
flag[0]=1;
else if(s.charAt(i)>='a'&&s.charAt(i)<='z')
flag[1]=1;
else if(s.charAt(i)>='0'&&s.charAt(i)<='9')
flag[2]=1;
else flag[3]=1;
}
int n=0;
for (int i : flag) {
n+=i;
}
if(n<3) arr.add("NG");
else{
//长度大于2的含有相同元素的子串
//这里子串不能是自己
boolean f=false;
for ( int i = 0; i < s.length()-3 ; i++) {
if(f) break;
for ( int j =i+1 ; j < s.length()-2; j++) {
if( s.charAt(i) == s.charAt(j)&&s.charAt(i+1)==s.charAt(j+1)&&s.charAt(i+2)==s.charAt(j+2)){
arr.add("NG");
f=true;
break;
}
}
}
if(!f) arr.add("OK");
}
}else{
arr.add("NG");
}
}
arr.forEach(a-> System.out.println(a));
}
}
查看1道真题和解析
