Untitled
unknown
plain_text
a year ago
1.0 kB
6
Indexable
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
Editor is loading...
Leave a Comment