Судоку: проверка разрешимости

Динамическое программирование Сложная
Дана частично заполненная доска судоku 9x9 (0 - пустая клетка, 1-9 - заполненная). Верните true, если её можно дополнить до корректного полного судоку (в каждой строке, столбце и блоке 3x3 - все цифры от 1 до 9 по разу).
Сигнатура функции
sudoku_is_solvable(board: list[list[int]]) -> bool
Примеры
ВходОжидаемый результат
[[[5, 3, 0, 0, 7, 0, 0, 0, 0], [6, 0, 0, 1, 9, 5, 0, 0, 0], [0, 9, 8, 0, 0, 0, 0, 6, 0], [8, 0, 0, 0, 6, 0, 0, 0, 3], [4, 0, 0, 8, 0, 3, 0, 0, 1], [7, 0, 0, 0, 2, 0, 0, 0, 6], [0, 6, 0, 0, 0, 0, 2, 8, 0], [0, 0, 0, 4, 1, 9, 0, 0, 5], [0, 0, 0, 0, 8, 0, 0, 7, 9]]]true
1решили
1пытались
100%успешность
Войдите, чтобы решить →