From 852af63a7ec3e435374ff3bb771d698070fcfbc8 Mon Sep 17 00:00:00 2001 From: ImAlpha Date: Tue, 19 Sep 2023 23:47:10 -0700 Subject: [PATCH] Solved for all test cases --- .../Arrays_and_Hashing/36_Valid_Sudoku.py | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/NeetCodeRoadmap/Arrays_and_Hashing/36_Valid_Sudoku.py b/NeetCodeRoadmap/Arrays_and_Hashing/36_Valid_Sudoku.py index 9bd4142..efb69f3 100644 --- a/NeetCodeRoadmap/Arrays_and_Hashing/36_Valid_Sudoku.py +++ b/NeetCodeRoadmap/Arrays_and_Hashing/36_Valid_Sudoku.py @@ -3,14 +3,22 @@ def isValidSudoku(board): :type board: List[List[str]] :rtype: bool """ - temp = [] - for x in range(len(board)): - for y in range(len(board[x])): - if y not in temp: - temp.append(board[x]) - else: + rows = [set() for x in range(9)] + columns = [set() for x in range(9)] + squares = [[set() for x in range(3)] for y in range(3)] + + for x in range(9): + for y in range(9): + cell_value = board[x][y] + if cell_value == ".": + continue + if cell_value in rows[x] or cell_value in columns[y] or cell_value in squares[x//3][y//3]: return False - temp = temp /3*3 + + rows[x].add(cell_value) + columns[y].add(cell_value) + squares[x//3][y//3].add(cell_value) + return True