Added sudoku type hints [Hacktober Fest] (#3124)

* chore(sudoku): added type hints [HACKTOBER-FEST]

* updating DIRECTORY.md

* chore: added matrix type alias

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
This commit is contained in:
Tapajyoti Bose 2020-10-10 12:32:51 +05:30 committed by GitHub
parent 02d3ab81bd
commit 3324bbb94b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,3 +1,7 @@
from typing import List, Tuple, Union
Matrix = List[List[int]]
""" """
Given a partially filled 9×9 2D array, the objective is to fill a 9×9 Given a partially filled 9×9 2D array, the objective is to fill a 9×9
square grid with digits numbered 1 to 9, so that every row, column, and square grid with digits numbered 1 to 9, so that every row, column, and
@ -36,7 +40,7 @@ no_solution = [
] ]
def is_safe(grid, row, column, n): def is_safe(grid: Matrix, row: int, column: int, n: int) -> bool:
""" """
This function checks the grid to see if each row, This function checks the grid to see if each row,
column, and the 3x3 subgrids contain the digit 'n'. column, and the 3x3 subgrids contain the digit 'n'.
@ -55,7 +59,7 @@ def is_safe(grid, row, column, n):
return True return True
def is_completed(grid): def is_completed(grid: Matrix) -> bool:
""" """
This function checks if the puzzle is completed or not. This function checks if the puzzle is completed or not.
it is completed when all the cells are assigned with a non-zero number. it is completed when all the cells are assigned with a non-zero number.
@ -76,7 +80,7 @@ def is_completed(grid):
return all(all(cell != 0 for cell in row) for row in grid) return all(all(cell != 0 for cell in row) for row in grid)
def find_empty_location(grid): def find_empty_location(grid: Matrix) -> Tuple[int, int]:
""" """
This function finds an empty location so that we can assign a number This function finds an empty location so that we can assign a number
for that particular row and column. for that particular row and column.
@ -87,7 +91,7 @@ def find_empty_location(grid):
return i, j return i, j
def sudoku(grid): def sudoku(grid: Matrix) -> Union[Matrix, bool]:
""" """
Takes a partially filled-in grid and attempts to assign values to Takes a partially filled-in grid and attempts to assign values to
all unassigned locations in such a way to meet the requirements all unassigned locations in such a way to meet the requirements
@ -124,7 +128,7 @@ def sudoku(grid):
return False return False
def print_solution(grid): def print_solution(grid: Matrix) -> None:
""" """
A function to print the solution in the form A function to print the solution in the form
of a 9x9 grid of a 9x9 grid