提交测验时段错误
这是题目
题目给出的是300*300的纯数字文本,每一行有一个换行符,但是没输入进去
在idea上编写程序正常运行,但是在蓝桥杯官网提交测验时发生段错误,不知道问题在哪,有无老哥解答一下。
Scanner sc = new Scanner(System.in);
int count = 0;
char[][] ch = new char[300][300];
for (int i = 0; i < ch.length; i++) {
ch[i] = sc.next().toCharArray();
}
sc.close();
//从左至右找2020
for (int i = 0; i < ch.length; i++) {
for (int j = 0; j < ch[i].length; j++) {
StringBuilder sb = new StringBuilder();
if(j+3 < ch[i].length){
sb.append(ch[i][j]);
sb.append(ch[i][j+1]);
sb.append(ch[i][j+2]);
sb.append(ch[i][j+3]);
if(sb.toString().equals("2020"))
count++;
}
}
}
//从上至下找2020
for (int i = 0; i < ch.length; i++) {
for (int j = 0; j < ch[i].length; j++) {
StringBuilder sb = new StringBuilder();
if(i+3 < ch.length){
sb.append(ch[i][j]);
sb.append(ch[i+1][j]);
sb.append(ch[i+2][j]);
sb.append(ch[i+3][j]);
if(sb.toString().equals("2020"))
count++;
}
}
}
//右下斜线找2020
for (int i = 0; i < ch.length; i++) {
for (int j = 0; j < ch[i].length; j++) {
StringBuilder sb = new StringBuilder();
if(i+3 < ch.length && j+3 < ch[i].length){
sb.append(ch[i][j]);
sb.append(ch[i+1][j+1]);
sb.append(ch[i+2][j+2]);
sb.append(ch[i+3][j+3]);
if(sb.toString().equals("2020"))
count++;
}
}
}
System.out.println(count); //16520