描述
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有长度大于2的不含公共元素的子串重复 (注:其他符号不含空格或换行)
数据范围:输入的字符串长度满足 1≤n≤100?1 \le n \le 100 \ 1≤n≤100?
输入描述:
一组字符串。
输出描述:
如果符合要求输出:OK,否则输出NG
示例1
输入:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出:
OK
NG
NG
OK
代码:
import java.util.*;
public class Main{
public static void main(String args[]){
String s=null;
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
s=sc.next();
int len=s.length();
if(len<=8){
System.out.print("NG");
}else{
int dif=0;
int xiaoxie=0;
int daxie=0;
int teshu=0;
int shuzi=0;
char c;
// boolean flag=false;
for(int i=0;i<len;i++){
c=s.charAt(i);
if(Character.isLetterOrDigit(c)){
if(Character.isLowerCase(c)){
xiaoxie=1;
}else if(Character.isUpperCase(c)){
daxie=1;
}else if(Character.isDigit(c)){
shuzi=1;
}
}else{
int temp=Integer.valueOf(c);
if(temp!=32&&temp!=10){
teshu=1;
}
}
}
dif=teshu+xiaoxie+daxie+shuzi;
// System.out.println("dif=====>"+dif);
if(dif<3){
System.out.println("NG");
}else{
String t;
String qian;
int i;
for(i=3;i<len;i++){
t=s.substring(i-2,i+1);
qian=s.substring(0,i-2);
if(qian.contains(t)){
// System.out.println("相同穿==》"+t+"===="+qian);
break;
}
}
if(i==len){
System.out.println("OK");
}else{
System.out.println("NG");
}
}
}
}
}
}
|