密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
一组或多组长度超过2的子符串。每组占一行
如果符合要求输出:OK,否则输出NG
每行输出对应一组输入的结果;
package com.oj; import java.util.Scanner; public class TestOj { public static void test(String str){ boolean flag = false; boolean[] flags = new boolean[4]; boolean flag2 = false; boolean flag3 = false; //System.out.println(flags[0]); if(str.length()>8) flag = true; for(int i = 0;i < str.length(); i++){ if(str.charAt(i)<='9'&&str.charAt(i)>='0') flags[0] = true; else if(str.charAt(i)>='a'&&str.charAt(i)<='z'){ flags[1] = true; }else if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){ flags[2] = true; }else flags[3] = true; } int count = 0; for(int i = 0;i < 4; i++){ if(flags[i]==true) count++; } if(count>=3) flag2 = true; for(int length = 2;length < str.length(); length++){ if(flag3==true) break; for(int i = 0;i < str.length()-length+1; i++){ String tempbase = str.substring(i, i+length); //System.out.println(tempbase); StringBuilder copy = new StringBuilder(str.substring(0,i)); copy.append(str.substring(i+length, str.length())); String use = copy.toString(); if(use.contains(tempbase)){ flag3 = true; break; } } } //System.out.println(flag+" "+flag2+" "+flag3); if(flag==true&&flag2==true&&flag3==false) System.out.println("OK"); else System.out.println("NG"); } public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); while(str!=null){ test(str); str = in.nextLine(); } } }
package com.oj; import java.util.Scanner; public class TestOj { public static void test(String str){ boolean flag = false; boolean[] flags = new boolean[4]; boolean flag2 = false; boolean flag3 = false; //System.out.println(flags[0]); if(str.length()>8) flag = true; for(int i = 0;i < str.length(); i++){ if(str.charAt(i)<='9'&&str.charAt(i)>='0') flags[0] = true; else if(str.charAt(i)>='a'&&str.charAt(i)<='z'){ flags[1] = true; }else if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){ flags[2] = true; }else flags[3] = true; } int count = 0; for(int i = 0;i < 4; i++){ if(flags[i]==true) count++; } if(count>=3) flag2 = true; for(int length = 2;length < str.length(); length++){ if(flag3==true) break; for(int i = 0;i < str.length()-length+1; i++){ String tempbase = str.substring(i, i+length); //System.out.println(tempbase); StringBuilder copy = new StringBuilder(str.substring(0,i)); copy.append(str.substring(i+length, str.length())); String use = copy.toString(); if(use.contains(tempbase)){ flag3 = true; break; } } } //System.out.println(flag+" "+flag2+" "+flag3); if(flag==true&&flag2==true&&flag3==false) System.out.println("OK"); else System.out.println("NG"); } public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); while(str!=null){ test(str); str = in.nextLine(); } } }