Задача 1: Решение судоку

Напишите определение функции solveSudoku(board), которая принимает в качестве аргумента двумерный список board, представляющий собой доску судоку.

Доска состоит из строк и столбцов размером 9x9, где:

  • Каждая строка представлена списком строковых символов.
  • Символы могут быть цифрами от "1" до "9" (заполненные клетки) или символом "." (пустые клетки).

Функция должна заполнить пустые клетки таким образом, чтобы результат был валидным решением судоку.

Правила решения судоку:

  1. Каждая цифра от 1 до 9 должна встречаться ровно один раз в каждой строке.
  2. Каждая цифра от 1 до 9 должна встречаться ровно один раз в каждом столбце.
  3. Каждая цифра от 1 до 9 должна встречаться ровно один раз в каждом из 9-ти подблоков размером 3x3.
  4. Символ "." указывает пустую клетку, которую нужно заполнить.

Пример:

Входные данные:

board = [
    ["5", "3", ".", ".", "7", ".", ".", ".", "."],
    ["6", ".", ".", "1", "9", "5", ".", ".", "."],
    [".", "9", "8", ".", ".", ".", ".", "6", "."],
    ["8", ".", ".", ".", "6", ".", ".", ".", "3"],
    ["4", ".", ".", "8", ".", "3", ".", ".", "1"],
    ["7", ".", ".", ".", "2", ".", ".", ".", "6"],
    [".", "6", ".", ".", ".", ".", "2", "8", "."],
    [".", ".", ".", "4", "1", "9", ".", ".", "5"],
    [".", ".", ".", ".", "8", ".", ".", "7", "9"]
]

Ожидаемый результат:

board = [
    ["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"]
]

Пояснение: Входная доска была частично заполнена. Функция должна найти единственное корректное решение, которое удовлетворяет правилам судоку.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии