8月12日:京东笔试第三题

注意斜的正方形,不只是菱形,画图找另外三个顶点的坐标规律。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt(), m = cin.nextInt();
        boolean[][] mat = new boolean[n][m];
        for (int i = 0; i < n; i++) {
            String s = cin.next();
            for (int j = 0; j < s.length(); j++) {
                mat[i][j] = s.charAt(j) == 'X';
            }
        }

        int res = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (!mat[i][j]) {
                    continue;
                }
                for (int k = 1; k < m; k++) {
                    // mat[i][j] 是正的正方形的左上角
                    if (j + k < m && i + k < n &&
                            mat[i][j + k] && mat[i + k][j] && mat[i + k][j + k]) {
                        res++;
                    }
                    // mat[i][j] 是斜的正方形的顶点
                    for (int t = 1; t < m; t++) {
                        if (i + k < n && j - t >= 0 && i + t < n && j + k < m && i + k + t < n && j + k - t < n &&
                                mat[i + k][j - t] && mat[i + t][j + k] && mat[i + k + t][j + k - t]
                        ) {
                            res++;
                        }
                    }
                }
            }
        }
        System.out.println(res);
    }
}

#京东信息集散地##笔试真题#
全部评论
点赞
送花
回复
分享
发布于 2023-08-14 11:39 广东

相关推荐

点赞 评论 收藏
转发
4 6 评论
分享
牛客网
牛客企业服务