题解 | #密码验证合格程序#
密码验证合格程序
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");
}
}
}
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");
}
}
}