Menu
CoddyTech

Valid Sudoku

MittelHashingpython iconjava iconcpp iconc iconjs icon+10

Du erhältst ein 9 × 9-Sudoku-Brett als board, eine Liste aus 9 Zeichenketten mit jeweils 9 Zeichen, eine Zeichenkette pro Zeile. Jedes Zeichen ist eine Ziffer von 1 bis 9 oder . für ein leeres Feld. Gib true zurück, wenn keine Ziffer zweimal in einer Zeile, einer Spalte oder einem 3 × 3-Block vorkommt, und andernfalls false. Es werden nur die ausgefüllten Felder überprüft: Das Brett muss nicht lösbar sein.

Funktion

isValidSudoku(board: string-array) → boolean
boardstring-array
9 Zeichenfolgen mit je 9 Zeichen, eine pro Zeile, Ziffern von 1 bis 9 und . für ein leeres Feld
Gibt zurückboolean
wahr, wenn keine Zeile, Spalte oder 3 × 3-Box eine Ziffer wiederholt, andernfalls falsch

Einschränkungen

  • board.length == 9 und board[i].length == 9
  • board[i][j] ist eine Ziffer von 1 bis 9 oder .
  • Das Spielfeld lässt sich möglicherweise nicht vervollständigen; relevant sind nur Wiederholungen unter den ausgefüllten Zellen.

Beispiele

Eingabe
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Ausgabe
true
Erklärung
Zeile 4, von 0 an gezählt, .74..89.3, enthält die Ziffern 7, 4, 8, 9 und 3 jeweils einmal, und auch keine der anderen 26 Gruppen enthält eine Ziffer doppelt.
challenge icon

Weiterführende Frage

Wie würdest du ein 16 × 16-Spielfeld mit 4 × 4-Blöcken und den Symbolen 1 bis 9 und A bis G überprüfen? Wie lautet die Formel für die Blöcke dann?

Code zurücksetzen
def isValidSudoku(board):
    # Schreibe hier Code

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"]

Erwartete Ausgabe

true