OJ-----密码验证合格程序
2016-08-16 14:16
225 查看
描述 | 密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 3.不能有相同长度超2的子串重复 说明:长度超过2的子串 |
---|---|
知识点 | 字符串,数组 |
运行时间限制 | 0M |
内存限制 | 0 |
输入 | 一组或多组长度超过2的子符串。每组占一行 |
输出 | 如果符合要求输出:OK,否则输出NG 每行输出对应一组输入的结果; |
样例输入 | 021Abc9000 021Abc9Abc1 021ABC9000 021$bc9000 |
样例输出 | OK NG NG OK |
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s=sc.nextLine();
///String[] arrs=s.split(" ");
//for(int i=0;i<arrs.length;i++){
System.out.println(pass(s));
//}
}//sc.close();
}
private static String pass(String s){
//if(sign(s)){return "11";}return "10";
//if(subs(s)){return"21";}return"20";
if(sign(s)&&subs(s)){
return "OK";
}else{
return "NG";
}
}
private static boolean sign(String s){
int i=0;int j=0;int k=0;int z=0;
for(int a=0;a<s.length();a++){
if(s.charAt(a)>='0'&&s.charAt(a)<='9'){i=1;}
else if(s.charAt(a)>='a'&&s.charAt(a)<='z'){j=1;}else if(s.charAt(a)>='A'&&s.charAt(a)<='Z'){k=1;}
else{z=1;}
}
if(i+j+k+z>=3){return true;}
return false;
}
private static boolean subs(String s){
int a=0;int b=2;int k=0;int sum=0;
for(int i=a;i<s.length()-5;i++){
for(int j=b;j<s.length();j++){
if(s.charAt(i)==s.charAt(j)){
a=i+1;++k;
if(j==s.length()-1){b=i+2;}else{b=j+1;}
//j=j+1;
sum=sum>k?sum:k;break;
}else{k=0;b=i+2;}
}
}
if(sum>2){return false;}
return true;
}
}
相关文章推荐
- 华为OJ——密码验证合格程序
- 华为oj中级 密码验证合格程序
- 密码验证合格程序(华为oj)
- 华为OJ密码验证合格程序
- 华为oj 密码验证合格程序
- 【华为OJ】【017-密码验证合格程序】
- 华为oj 密码验证合格程序
- 【华为oj】密码验证合格程序
- 华为OJ(密码验证合格程序)
- 华为oj之密码验证合格程序
- 【华为 OJ】密码验证合格程序
- 华为OJ——密码验证合格程序
- 华为OJ 密码验证合格程序
- 华为OJ-----密码验证合格程序
- 华为OJ中级题-密码验证合格程序
- 华为OJ-密码验证合格程序-牛客网
- 【华为OJ20】密码验证合格程序
- 密码验证合格程序
- Java-NowCoder-密码验证合格程序
- 密码验证合格程序