Problem

You are given coordinates, a string that represents the coordinates of a square of the chessboard. Below is a chessboard for your reference.

Return true if the square is white, and false if the square is black.

The coordinate will always represent a valid chessboard square. The coordinate will always have the letter first, and the number second.

https://leetcode.cn/problems/determine-color-of-a-chessboard-square/

Example 1:

Input: coordinates = "a1"
Output: false
Explanation: From the chessboard above, the square with coordinates "a1" is black, so return false.

Example 2:

Input: coordinates = "h3"
Output: true
Explanation: From the chessboard above, the square with coordinates "h3" is white, so return true.

Example 3:

Input: coordinates = "c7"
Output: false

Constraints:

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

Test Cases

1
2
class Solution:
def squareIsWhite(self, coordinates: str) -> bool:
solution_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pytest

from solution import Solution


@pytest.mark.parametrize('coordinates, expected', [
("a1", False),
("h3", True),
("c7", False),
])
class Test:
def test_solution(self,coordinates, expected):
sol = Solution()
assert sol.squareIsWhite(coordinates) == expected

Thoughts

相当于 3274. Check if Two Chessboard Squares Have the Same Color 的一半。

Code

solution.py
1
2
3
class Solution:
def squareIsWhite(self, coordinates: str) -> bool:
return (ord(coordinates[0]) ^ ord(coordinates[1])) & 1 == 1