Description
https://leetcode.com/problems/determine-color-of-a-chessboard-square/
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.
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'
Explanation
Find white positions conditions. A white position is at an even column of an odd row or at an odd column of an even row.
Python Solution
class Solution:
def squareIsWhite(self, coordinates: str) -> bool:
position = (int(coordinates[1]) - 1) * 8 + (ord(coordinates[0]) - ord('a')) % 8
is_odd_row = (int(coordinates[1])) % 2
is_odd_column = (ord(coordinates[0]) - ord('a') + 1) % 2
return (is_odd_row and not is_odd_column) or (not is_odd_row and is_odd_column)
- Time Complexity: O(1).
- Space Complexity: O(1).