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

密码验证合格程序

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

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
         Scanner scanner = new Scanner(System.in);
        loop:
        while (scanner.hasNextLine()) {
            String pwd = scanner.nextLine();
            if (pwd.length() < 8) {
                System.out.println("NG");
                continue loop;
            }
            char[] chars = pwd.toCharArray();
            int a = 0, b = 0, c = 0, d = 0, count = 0;
            for (char aChar : chars) {
                if (Character.isUpperCase(aChar)) {
                    a = 1;
                }
                if (Character.isLowerCase(aChar)) {
                    b = 1;
                }
                if (Character.isDigit(aChar)) {
                    c = 1;
                }
                if (!Character.isLetterOrDigit(aChar)) {// 不是字母也不是数字
                    d = 1;
                }
            }
            if ((count = a + b + c + d) < 3) {
                System.out.println("NG");
                continue loop;
            }

           for (int i = 0; i < pwd.length() - 2; i++) {
                String sonString = pwd.substring(i, i + 3);
                //这里可以直接从i+2后面判断,因为我从i截取3个字符,去后面判断是否包含就行了
                //如果前面有这3个字符的话,在前面截取3个字符往后判断时就应该中断,输出NG
                if (pwd.substring(i +2 ).contains(sonString)) {
                    System.out.println("NG");
                    continue loop;
                }
           }
            System.out.println("OK");
        }
    }
}
全部评论

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务