Menu
CoddyTech

Valid Sudoku

ŚrednieHaszowaniepython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz planszę Sudoku 9 × 9 jako board, listę 9 ciągów znaków, z których każdy ma 9 znaków, po jednym ciągu na każdy wiersz. Każdy znak to cyfra od 1 do 9 albo . oznaczająca pustą komórkę. Zwróć true, jeśli żadna cyfra nie występuje dwukrotnie w wierszu, kolumnie ani kwadracie 3 × 3, a w przeciwnym razie zwróć false. Sprawdzane są tylko wypełnione komórki: plansza nie musi mieć rozwiązania.

Funkcja

isValidSudoku(board: string-array) → boolean
boardstring-array
9 ciągów po 9 znaków, po jednym w każdym wierszu, cyfry od 1 do 9 i . oznaczająca puste pole
Zwracaboolean
true, jeśli żadna cyfra nie powtarza się w wierszu, kolumnie ani polu 3 × 3; w przeciwnym razie false

Ograniczenia

  • board.length == 9 oraz board[i].length == 9
  • board[i][j] to cyfra od 1 do 9 lub .
  • Plansza może być niemożliwa do ukończenia; liczą się tylko powtórzenia wśród wypełnionych pól.

Przykłady

Wejście
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Wyjście
true
Wyjaśnienie
Wiersz 4, licząc od 0, .74..89.3, zawiera po jednym wystąpieniu cyfr 7, 4, 8, 9 i 3, a żadna z pozostałych 26 grup również nie powtarza żadnej cyfry.
challenge icon

Pytanie dodatkowe

Jak sprawdzić planszę 16 × 16 z polami 4 × 4 i symbolami od 1 do 9 oraz od A do G? Jak będzie wyglądał wzór na pole?

Zresetuj kod
def isValidSudoku(board):
    # Wpisz tutaj kod

Test #1

Test #2

Test #3

Argument

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

Oczekiwany wynik

true