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

密码验证合格程序

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

import java.util.Scanner;
//没有用到正则,算是暴力解题
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while (sc.hasNextLine()){
            String str=sc.nextLine().trim();
            int flag=1;//没有重复子字符串的标志位
            char[] ch=str.toCharArray();
            int[] flag1={0,0,0,1};//各类字符的标志位
            int flag2=0;//累加器
            //长度大于8
            if (str.length()<8){
                System.out.println("NG");
            }
            //长度大于2的子字符串不会出现两次
            //方法是判断子串不被剩下两个子串包含,用contains来判断
            if (str.length()>=8){
                for (int i = 0; i <str.length()-2 ; i++) {
                    for (int j = i + 3; j < str.length(); j++) {
                        if (str.substring(0, i).contains(str.substring(i, j)) || str.substring(j).contains(str.substring(i, j))) {
                            flag = 0;
                            continue;
                        }
                    }
                }
                if (flag==0){
                    System.out.println("NG");
                }
			  //校验字符种类大于3种,利用设置的字符种类的标志位
                if (flag==1){
                    for (char ch1:ch
                    ) {
                        if (Character.isDigit(ch1)){
                            flag1[0]=1;
                            flag2 ++;
                        }
                        if (Character.isLowerCase(ch1)){
                            flag1[1]=1;
                            flag2 ++;
                        }
                        if (Character.isUpperCase(ch1)){
                            flag1[2]=1;
                            flag2 ++;
                        }
                        if (flag2==str.length()){
                            flag1[3]=0;//表示没有其他特殊字符
                        }
                    }
                    if ((flag1[0]+flag1[1]+flag1[2]+flag1[3])>2){
                        System.out.println("OK");
                    }else {
                        System.out.println("NG");
                    }
                }
            }
        }

    }
}

#算暴力解法吗#
全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务