diff --git a/leetcode/36.py b/leetcode/36.py new file mode 100644 index 0000000..d48717d --- /dev/null +++ b/leetcode/36.py @@ -0,0 +1,23 @@ +# Valid Sudoku + + +class Solution: + def isValidSuduku(self, board: list[list[int]]) -> bool: + rows = [set() for _ in range(9)] + cols = [set() for _ in range(9)] + boxes = [set() for _ in range(9)] + + for i in range(9): + for j in range(9): + num = board[i][j] + if num != ".": + box_index = (i // 3) * 3 + j // 3 + + if num in rows[i] or num in cols[j] or num in boxes[box_index]: + return False + + rows[i].add(num) + cols[j].add(num) + boxes[box_index].add(num) + + return True