is_valid_solution iin SudokuSolver/add gitignore

This commit is contained in:
Sirin Puenggun 2023-07-07 23:12:12 +07:00
parent 00b925c17c
commit 7d73c84bb6
3 changed files with 13 additions and 11 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
__pycache__/

View File

@ -41,4 +41,15 @@ class SudokuSolver:
if grid[box_row + i][box_col + j] == num:
return False
return True
@staticmethod
def is_valid_solution(grid):
# Check if each row, column, and 3x3 box contains all numbers from 1 to 9
for i in range(9):
row_nums = set(grid[i])
col_nums = set(grid[j][i] for j in range(9))
box_nums = set(grid[i//3*3+j//3][i%3*3+j%3] for j in range(9))
if row_nums != set(range(1, 10)) or col_nums != set(range(1, 10)) or box_nums != set(range(1, 10)):
return False
return True

View File

@ -17,7 +17,7 @@ def test_solve_sudoku():
[0, 0, 0, 0, 8, 0, 0, 7, 9]
]
assert SudokuSolver.solve(grid)
assert is_valid_solution(grid)
assert SudokuSolver.is_valid_solution(grid)
# Test an invalid Sudoku grid
grid = [
@ -33,13 +33,3 @@ def test_solve_sudoku():
]
assert not SudokuSolver.solve(grid)
def is_valid_solution(grid):
# Check if each row, column, and 3x3 box contains all numbers from 1 to 9
for i in range(9):
row_nums = set(grid[i])
col_nums = set(grid[j][i] for j in range(9))
box_nums = set(grid[i//3*3+j//3][i%3*3+j%3] for j in range(9))
if row_nums != set(range(1, 10)) or col_nums != set(range(1, 10)) or box_nums != set(range(1, 10)):
return False
return True