Sudoku solution count

Write codeHard40 minGoogle and Apple style

Your task

Given a 9x9 Sudoku grid as a list of lists of integers where 0 marks an empty cell and 1..9 are filled, count how many ways the empty cells can be filled to satisfy standard Sudoku rules (each row, column, and 3x3 box contains 1..9 exactly once). To keep it cheap, stop counting once you reach 2 (so the return is 0, 1, or 2, where 2 means 'two or more / not unique'). Assume the given filled cells are consistent. Return an integer.

Examples

count_sudoku_solutions(board: list[list[int]]) -> int
Example 1
Inputcount_sudoku_solutions([[5, 3, 4, 6, 7, 8, 9, 1, 2], [6, 7, 2, 1, 9, 5, 3, 4, 8], [1, 9, 8, 3, 4, 2, 5, 6, 7], [8, 5, 9, 7, 6, 1, 4, 2, 3], [4, 2, 6, 8, 5, 3, 7, 9, 1], [7, 1, 3, 9, 2, 4, 8, 5, 6], [9, 6, 1, 5, 3, 7, 2, 8, 4], [2, 8, 7, 4, 1, 9, 6, 3, 5], [3, 4, 5, 2, 8, 6, 1, 7, 9]])
Output1