华为机试-密码验证合格程序
2017-03-02 20:23
267 查看
题目描述
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述:
如果符合要求输出:OK,否则输出NG
输入例子:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出例子:
OK
NG
NG
OK
代码:
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述:
如果符合要求输出:OK,否则输出NG
输入例子:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出例子:
OK
NG
NG
OK
代码:
import java.util.Scanner; public class PasswordQualified { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); while(sc.hasNext()) { String key=sc.next(); if(isQualified(key)) { System.out.println("OK"); } else{ System.out.println("NG"); } } } public static boolean isQualified(String key) { int Low=0,Up=0,num=0,other=0; if(key.length()<=8) { return false; } for(int i=0;i<key.length();i++) { char ch=key.charAt(i); if('0'<=ch&&ch<='9') { num=1; } else if('a'<=ch&&ch<='z') { Low=1; } else if('A'<=ch&&ch<='Z') { Up=1; } else { other=1; } } if(num+Low+Up+other<3) { return false; } for(int j=0;j<key.length()-4;j++) { for(int k=j+1;k<key.length()-3;k++) { if(key.substring(j,j+3).equals(key.substring(k,k+3))) { return false; } } } return true; } }
相关文章推荐
- 《华为机试在线训练》之密码验证合格程序
- [华为机试练习题]31.密码验证合格程序
- 【华为机试】密码验证合格程序
- 【华为机试】密码验证合格程序
- 牛客网_华为机试_020_牛客网_密码验证合格程序
- 华为机试在线训练108题:密码验证合格程序
- Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
- 密码验证合格程序(华为oj)
- 华为OJ密码验证合格程序
- 【华为OJ20】密码验证合格程序
- 【华为OJ】【017-密码验证合格程序】
- 华为oj 密码验证合格程序
- 华为oj 密码验证合格程序
- 华为OJ-密码验证合格程序-牛客网
- 华为oj之密码验证合格程序
- 华为机试题:密码验证合格程序
- 华为OJ(密码验证合格程序)
- 【华为oj】密码验证合格程序
- 华为OJ中级题-密码验证合格程序
- 华为OJ-----密码验证合格程序