LeetCode 1812. Determine Color of a Chessboard Square

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).

Leave a Reply

Your email address will not be published. Required fields are marked *