报告错误
如果你发现该网页中存在错误/显示异常,可以从以下两种方式向我们报告错误,我们会尽快修复:
- 使用 CS Club 网站错误 为主题,附上错误截图或描述及网址后发送邮件到 286988023@qq.com
- 在我们的网站代码仓库中创建一个 issue 并在 issue 中描述问题 点击链接前往Github仓库
题目大意
题目给了一组四位数字,需要判断其是否符合一下两种弱密码情况:
1)四位数字都相同
2)从第一位到第三位数字,后面一位数字按顺序(0~8、9~0)跟随前一位数字。
解题思路
做遍历循环判断前三位数字:
1)前三个数字每一个都与后面一个相同,即为弱密码
2)前三个数字每一个与后面一个的差为1;或前一个数字等于9时,后一个数为0,即为弱密码
复杂度解析
遍历循环只需要遍历前三个数,复杂度即为: \(O(1)\)
提交代码
import java.util.*;
import java.io.*;
public class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static int[] input;
public static void main(String[] args) throws IOException {
parseInput();
if(check1() && check2()) {
System.out.println("Strong");
} else {
System.out.println("Weak");
}
}
public static boolean check1() {
boolean result = false;
for(int i = 0; i < input.length - 1; i++) {
if(input[i] != input[i + 1]) {
result = true;
break;
}
}
return result;
}
public static boolean check2() {
boolean result = false;
for(int i = 0; i < input.length - 1; i++) {
if((input[i] != 9 && input[i] + 1 != input[i + 1]) || (input[i] == 9 && input[i + 1] != 0)) {
result = true;
return result;
}
}
return result;
}
public static void parseInput() throws IOException {
String[] args = br.readLine().split("");
input = new int[args.length];
for(int i = 0; i < args.length; i++) {
input[i] = Integer.parseInt(args[i]);
}
}
}