Untitled
def is_valid_move(row, column, number, grid): """Check if placing a number at grid[row][col] is valid. checks for both row and column""" for i in range(9): if grid[row][i] == number or grid[i][column] == number: return False # Check 3x3 subgrid r, c = (row // 3) * 3, (column // 3) * 3 for i in range(3): for j in range(3): if grid[r + i][c + j] == number: return False return True def solve_sudoku(grid): """Recursive backtracking function to solve the Sudoku grid.""" for row in range(9): for column in range(9): if grid[row][column] == 0: for number in range(1, 10): if is_valid_move(row, column, number, grid): grid[row][column] = number if solve_sudoku(grid): return True grid[row][column] = 0 # Backtrack return False return True
Leave a Comment