牛客 HJ20 密码验证合格程序

Posted 顧棟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客 HJ20 密码验证合格程序相关的知识,希望对你有一定的参考价值。

描述
密码要求:

1.长度超过8位

2.包括大小写字母.数字.其它符号,以上四种至少三种

3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)

数据范围:输入的字符串长度满足 1 ≤ n ≤ 100 1 \\le n \\le 100 1n100

输入描述:
一组字符串。

输出描述:
如果符合要求输出:OK,否则输出NG

示例1

输入:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出:
OK
NG
NG
OK

java实现

  1. 主要是对条件三进行操作,通过将字符串从拆分成两部分。若大部分中还拥有小部分,说明短字符串重复存在。
package nowcoder.x2x;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class HJ020 
    public static void main(String[] args) throws IOException 
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String input;
        while (null != (input = reader.readLine())) 
            if (input.length() < 9) 
                System.out.println("NG");
                continue;
            

            char[] chars = input.toCharArray();
            int a1 = 0, b1 = 0, c1 = 0, d1 = 0;
            int n = 0;
            for (char c : chars) 
                if (c >= 'A' && c <= 'Z') 
                    a1 = 1;
                 else if (c >= 'a' && c <= 'z') 
                    b1 = 1;
                 else if (c >= '0' && c <= '9') 
                    c1 = 1;
                 else if (c == ' ' || c == '\\n') 
                    break;
                 else 
                    d1 = 1;
                
            

            if (a1 + b1 + c1 + d1 < 3) 
                System.out.println("NG");
                continue;
            

            boolean flag = false;
            // 将字符串从拆分成两部分。若大部分中还拥有小部分,说明短字符串重复存在。
            for (int i = 3; i < input.length(); i++) 
                if (input.substring(i).contains(input.substring(i - 3, i))) 
                    System.out.println("NG");
                    flag = true;
                    // 跳出for,提高效率
                    break;
                
            
            if (flag) 
                continue;
            
            System.out.println("OK");
        

    

以上是关于牛客 HJ20 密码验证合格程序的主要内容,如果未能解决你的问题,请参考以下文章

华为机试题 HJ20密码验证合格程序

华为机试HJ20:密码验证合格程序

1-20密码验证合格程序

牛客 HJ32 密码截取

牛客 HJ19 简单错误记录

牛客 HJ28 素数伴侣