题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            boolean[] arr = new boolean[4];
            int count = 0;
            boolean flag = false;
            if (str.length() <= 8) {
                System.out.println("NG");
            } else {
                for (int i = 0; i < str.length(); i++) {
                    if ( str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
                        arr[0] = true;
                    } else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
                        arr[1] = true;
                    } else if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                        arr[2] = true;
                    } else if (str.charAt(i) == '\n' || str.charAt(i) == ' ') {
                        System.out.println("NG");
                        flag = true;
                        break;
                    } else {
                        arr[3] = true;
                    }

                }
                if ( isExist(str, 0, 3)) {
                    System.out.println("NG");
                    flag = true;
                }
                if (flag == false){
                    for (int i = 0; i < arr.length; i++) {
                        if (arr[i] == true) {
                            count++;
                        }
                    }
                    if (count >= 3) {
                        System.out.println("OK");
                    }
                }
            }

        }
    }
    static boolean isExist(String str, int i, int j) {
        if (j > str.length() -3 ) {//0123456 j = 3,len = 7 ,sub = 3
            return false;
        } else {
            
            if (str.substring(j).contains(str.substring(i, j))) {
                return true;
            } else {
               //j = 4, i = 1, 4
                return isExist(str,i + 1, j + 1);
            }
        }

    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务