From cafba6de98605b427ab466f6a589a0f27fe71d16 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sun, 17 Jul 2022 13:26:15 -0400 Subject: [PATCH] Time: 127 ms (37.91%), Space: 13.7 MB (7.69%) - LeetHub --- 36-valid-sudoku/36-valid-sudoku.py | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 36-valid-sudoku/36-valid-sudoku.py diff --git a/36-valid-sudoku/36-valid-sudoku.py b/36-valid-sudoku/36-valid-sudoku.py new file mode 100644 index 0000000..0c23de5 --- /dev/null +++ b/36-valid-sudoku/36-valid-sudoku.py @@ -0,0 +1,48 @@ +class Solution(object): + def isValidSudoku(self, board): + """ + :type board: List[List[str]] + :rtype: bool + """ + # Check horizontals + for i in range(len(board)): + inRow = [False] * 10 + + for j in range(len(board[i])): + if board[i][j] == ".": + continue + else: + if inRow[int(board[i][j])]: + return False + else: + inRow[int(board[i][j])] = True + + + # Check verticals + for j in range(len(board[0])): + inColumn = [False] * 10 + + for i in range(len(board)): + if board[i][j] == ".": + continue + else: + if inColumn[int(board[i][j])]: + return False + else: + inColumn[int(board[i][j])] = True + + # Check boxes + for boxI in range(3): + for boxJ in range(3): + inBox = [False] * 10 + for i in range(3): + for j in range(3): + if board[(boxI * 3) + i][(boxJ * 3) + j] == ".": + continue + else: + if inBox[int(board[(boxI * 3) + i][(boxJ * 3) + j])]: + return False + else: + inBox[int(board[(boxI * 3) + i][(boxJ * 3) + j])] = True + + return True \ No newline at end of file