Menu
CoddyTech

Valid Sudoku

СреднеХешированиеpython iconjava iconcpp iconc iconjs icon+10

Тебе дана доска судоку размером 9 × 9 в виде board — списка из 9 строк, в каждой из которых 9 символов; одна строка соответствует одному ряду. Каждый символ — это цифра от 1 до 9 или . для пустой ячейки. Верни true, если ни одна цифра не встречается дважды в одном ряду, одном столбце или одном квадрате размером 3 × 3, и false в противном случае. Проверяются только заполненные ячейки: доска не обязана иметь решение.

Функция

isValidSudoku(board: string-array) → boolean
boardstring-array
9 строк по 9 символов, по одной в каждой строке, цифры от 1 до 9 и . для пустой ячейки
Возвращаетboolean
true, если ни в одной строке, столбце или блоке 3 × 3 цифра не повторяется, иначе false

Ограничения

  • board.length == 9 и board[i].length == 9
  • board[i][j] — это цифра от 1 до 9 или .
  • Игровое поле может быть невозможно заполнить; важны только повторы среди заполненных ячеек.

Примеры

Ввод
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Вывод
true
Пояснение
В каждой строке, каждом столбце и каждом блоке каждая цифра встречается не более одного раза. В строке 4 (считая от 0) .74..89.3 цифры 7, 4, 8, 9 и 3 встречаются по одному разу, и то же самое верно для остальных 26 групп, поэтому ответ — true.

lock icon+16 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Обобщи проверку для поля размером 16 × 16 с блоками 4 × 4 и символами от 1 до 9 и от A до G. Какие числа в твоём коде зависят от размера поля и какой станет формула для блока?

Сбросить код
def isValidSudoku(board):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]

Ожидается

true