import java.util.Scanner;
public class 寻找2020 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int sum = 0;
int[][] arr1 = new int[301][301];
for (int i = 1; i <= 300; i++) {
String str = sc.next();
for (int j = 1; j <= str.length(); j++) {
arr1[i][j] = str.charAt(j-1)-'0';
}
}
//寻找在同一列的2020。
for (int i = 1; i <= 300; i++) {
for (int j = 1; j <= 300; j++) {
if (i + 3 <= 300 && arr1[i][j] == 2 && arr1[i + 1][j] == 0 &&arr1[i + 2][j] == 2 && arr1[i + 3][j] == 0)
sum++;
}
}
//寻找在同一行的2020
for (int i = 1; i <= 300; i++) {
for (int j = 1; j <= 300; j++) {
if (j + 3 <= 300&&arr1[i][j] == 2 && arr1[i][j + 1] == 0 && arr1[i][j + 2] == 2 && arr1[i][j + 3] == 0 )
sum++;
}
}
//寻找左上到右下的2020
for(int i=1;i<=300;i++){
for(int j=1;j<=300;j++){
if( i+3 <=300 && j+3 <=300 && arr1[i][j]==2 && arr1[i+1][j+1]==0 && arr1[i+2][j+2]==2 && arr1[i+3][j+3]==0){
sum++;
}
}
}
System.out.println(sum);
}
}
测试数据连接:
点击跳转
答案:16520