Valid Sudoku – Python 3 (Week 12 – 08)

   class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        row = [set([]) for i in range(9)]
        col = [set([]) for i in range(9)]
        grid = [set([]) for i in range(9)]
        
        for i in range(9):
            for j in range(9):
                
                if board[i][j] == '.':
                    continue
                if board[i][j] in row[i]:
                    return False
                if board[i][j] in col[j]:
                    return False
                
                gridIndex = i // 3 * 3 + j // 3
                print(gridIndex)
                
                if board[i][j] in grid[gridIndex]:
                    return False
                
                row[i].add(board[i][j])
                col[j].add(board[i][j])
                grid[gridIndex].add(board[i][j])
                
        return True

Time O(n^2). Space O(n^2).

Leave a comment

Design a site like this with WordPress.com
Get started