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

密码验证合格程序

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

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        ArrayList<String> arr = new ArrayList<>();
        while (sc.hasNext()){
            String s =sc.next();
            if(s.length()>=8){
                int[] flag=new int[4];
                //0 大写; 1 小写;2 数字;3其他符号
                for (int i = 0; i < s.length(); i++) {
                    if(s.charAt(i)>='A'&&s.charAt(i)<='Z')
                        flag[0]=1;
                    else if(s.charAt(i)>='a'&&s.charAt(i)<='z')
                        flag[1]=1;
                    else if(s.charAt(i)>='0'&&s.charAt(i)<='9')
                        flag[2]=1;
                    else  flag[3]=1;
                }
                int n=0;
                for (int i : flag) {
                    n+=i;
                }
                if(n<3) arr.add("NG");
                else{
                    //长度大于2的含有相同元素的子串
                    //这里子串不能是自己
                    boolean f=false;
                    for ( int i = 0; i < s.length()-3 ; i++) {
                        if(f) break;
                        for ( int j =i+1 ; j < s.length()-2; j++) {
                            if( s.charAt(i) == s.charAt(j)&&s.charAt(i+1)==s.charAt(j+1)&&s.charAt(i+2)==s.charAt(j+2)){
                                arr.add("NG");
                                f=true;
                                break;
                            }
                        }
                    }
                    if(!f) arr.add("OK");
                }
            }else{
                arr.add("NG");
            }
        }
        arr.forEach(a-> System.out.println(a));
    }
}

全部评论

相关推荐

12-03 21:23
武汉大学 Java
点赞 评论 收藏
分享
冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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