华为在线编程系列-密码合格验证
2017-04-05 10:47
239 查看
题目:
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述
如果符合要求输出:OK,否则输出NG
例子:
代码:对三种情况分别进行判断,其中对于第二个要求,可以用一个大小为4的数组来记录字符串的种类数
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述
如果符合要求输出:OK,否则输出NG
例子:
输入: 021Abc9000 021Abc9Abc1 021ABC9000 021$bc9000 输出: OK NG NG OK
代码:对三种情况分别进行判断,其中对于第二个要求,可以用一个大小为4的数组来记录字符串的种类数
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String value = scan.nextLine(); //第一个要求 if(value == null || value.length() <= 8){ System.out.println("NG"); }else{ int[] category = new int[4]; for(int i = 0; i < value.length(); i++){ if(value.charAt(i) <= 'Z' && value.charAt(i) >= 'A'){ category[0] = 1; }else if(value.charAt(i) <= 'z' && value.charAt(i) >= 'a'){ category[1] = 1; }else if(value.charAt(i) <= '9' && value.charAt(i) >= '0'){ category[2] = 1; }else{ category[3] = 1; } } if(category[0] + category[1] + category[2] + category[3] < 3){ System.out.println("NG"); }else{ System.out.println(isValidSubString(value)); } } } } private static String isValidSubString(String str){ for(int i = 3; i < str.length();i++){ String str1 = str.substring(i-3,i); String str2 = str.substring(i,str.length()); if(str2.contains(str1)){ return "NG"; } } return "OK"; } }
相关文章推荐
- 华为oj 密码验证合格程序
- 牛客网_华为机试_020_牛客网_密码验证合格程序
- 华为oj之密码验证合格程序
- 【华为OJ20】密码验证合格程序
- 【华为OJ】【017-密码验证合格程序】
- 华为OJ——密码验证合格程序
- 华为oj 密码验证合格程序
- 华为机试-密码验证合格程序
- 华为机试在线训练-牛客网(12)密码验证合格程序
- [华为机试练习题]31.密码验证合格程序
- 华为机试题:密码验证合格程序
- 华为OJ密码验证合格程序
- 华为oj中级 密码验证合格程序
- 密码验证合格程序(华为oj)
- 华为机试在线训练108题:密码验证合格程序
- 华为OJ中级题-密码验证合格程序
- Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
- 【华为 OJ】密码验证合格程序
- 《华为机试在线训练》之密码验证合格程序
- 【华为oj】密码验证合格程序