Leetcode

Neetcode

Code

class Solution(object):
    def isValidSudoku(self, board):
        """
        :type board: List[List[str]]
        :rtype: bool
        """
        rows = defaultdict(set)
        cols = defaultdict(set)
        squares = defaultdict(set)
 
        for r in range(9):
            for c in range(9):
                if board[r][c] == ".":
                    continue
 
                if board[r][c] in rows[r] or \
                    board[r][c] in cols[c] or \
                    board[r][c] in squares[(r//3, c//3)]:
                    return False
 
                rows[r].add(board[r][c])
                cols[c].add(board[r][c])
                squares[(r//3, c//3)].add(board[r][c])
 
        return True