3274. 检查棋盘方格颜色是否相同

给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。

以下是棋盘的参考图。

如果这两个方格颜色相同,返回 true,否则返回 false。

坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。

示例 1:

输入: coordinate1 = "a1", coordinate2 = "c3"

输出: true

解释:

两个方格均为黑色。

示例 2:

输入: coordinate1 = "a1", coordinate2 = "h3"

输出: false

解释:

方格 "a1" 是黑色,而 "h3" 是白色。

提示:

coordinate1.length == coordinate2.length == 2
'a' <= coordinate1[0], coordinate2[0] <= 'h'
'1' <= coordinate1[1], coordinate2[1] <= '8'

解题思路:
1.计算两个坐标的横纵坐标差值之和。
2.判断这个和是否为偶数。如果是偶数,则返回 true,表示两个坐标在相同颜色的格子上;否则返回 false。

完整代码:
    /**
     * 检查两个棋盘位置是否在同一颜色的格子上
     * 该方法通过计算两个位置的行列差之和的奇偶性来判断
     * 棋盘的坐标由字母和数字组成,例如"A1",表示第一列第一行
     * 由于棋盘是交替颜色的,通过计算坐标的差值可以确定颜色是否相同
     * 
     * @param coordinate1 第一个棋盘位置的坐标,格式为列字母加行数字,例如"A1"
     * @param coordinate2 第二个棋盘位置的坐标,格式同上
     * @return 如果两个位置在相同颜色的格子上,则返回true;否则返回false
     */
    public boolean checkTwoChessboards(String coordinate1, String coordinate2) {
        // 计算两个位置的行列差之和,如果和为偶数,则两位置颜色相同
        return (coordinate1.charAt(0) - coordinate2.charAt(0) + coordinate1.charAt(1) - coordinate2.charAt(1)) % 2 == 0;
    }
posted @ 2024-12-03 17:02  JAVA-CHENG  阅读(3)  评论(0编辑  收藏  举报