38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
# Sudoku Solver
|
|
|
|
|
|
class Solution:
|
|
def solveSudoku(self, board: list[list[int]]) -> None:
|
|
def isValid(board, row, col, num):
|
|
# Check if the number is in the current row
|
|
for x in range(9):
|
|
if board[row][x] == num:
|
|
return False
|
|
if board[x][col] == num:
|
|
return False
|
|
|
|
startRow, startCol = 3 * (row // 3), 3 * (col // 3)
|
|
for i in range(3):
|
|
for j in range(3):
|
|
if board[startRow + i][startCol + j] == num:
|
|
return False
|
|
|
|
return True
|
|
|
|
def solve(board):
|
|
for i in range(9):
|
|
for j in range(9):
|
|
if broad[i][j] == ".":
|
|
# Try all numbers for empty cell
|
|
for num in map(str, range(1, 10)):
|
|
if isValid(board, i, j, num):
|
|
board[i][j] = num
|
|
if solve(board):
|
|
return True
|
|
board[i][j] = "."
|
|
|
|
return False
|
|
return False
|
|
|
|
solve(board)
|