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 групп цифры тоже не повторяются.
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