leetcode_1812 判断国际象棋棋盘中一个格子的颜色

170 阅读1分钟

要求

给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。

image.png

如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。

给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。

示例 1:

 输入:coordinates = "a1"
 输出:false
 解释:如上图棋盘所示,"a1" 坐标的格子是黑色的,所以返回 false

示例 2:

 输入:coordinates = "h3"
 输出:true
 解释:如上图棋盘所示,"h3" 坐标的格子是白色的,所以返回 true

示例 3:

 输入:coordinates = "c7"
 输出:false

提示:

  • coordinates.length == 2
  • 'a' <= coordinates[0] <= 'h'
  • '1' <= coordinates[1] <= '8'

核心代码

class Solution:
    def squareIsWhite(self, coordinates: str) -> bool:
        one = ord(coordinates[0]) - 97 + 1
        two = int(coordinates[1])
        return (one + two) % 2 == 1

image.png

解题思路:我们观察棋盘可以发现,两个坐标加起来的奇偶性来判断,我们拿a1来看,97 + 1 = 98 属于黑色,向上的奇数都是白色,同理向右的奇数也都是白色,所以坐标加到一起是奇数就是白色。