Menu
CoddyTech

Valid Sudoku

MedioHashingpython iconjava iconcpp iconc iconjs icon+10

Ricevi una griglia di Sudoku 9 × 9 come board, un elenco di 9 stringhe di 9 caratteri ciascuna, una stringa per riga. Ogni carattere è una cifra da 1 a 9 oppure . per una cella vuota. Restituisci true se nessuna cifra compare due volte nella stessa riga, nella stessa colonna o nello stesso riquadro 3 × 3, e false altrimenti. Vengono controllate solo le celle riempite: la griglia non deve necessariamente essere risolvibile.

Funzione

isValidSudoku(board: string-array) → boolean
boardstring-array
9 stringhe di 9 caratteri, una per riga, cifre da 1 a 9 e . per una cella vuota
Restituisceboolean
true se nessuna riga, colonna o riquadro 3 × 3 ripete una cifra, false altrimenti

Vincoli

  • board.length == 9 e board[i].length == 9
  • board[i][j] è una cifra da 1 a 9 oppure .
  • Potrebbe essere impossibile completare la tavola; contano solo le ripetizioni tra le celle riempite.

Esempi

Input
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Output
true
Spiegazione
Ogni riga, colonna e riquadro contiene ogni cifra al massimo una volta. La riga 4 (contando da 0), .74..89.3, contiene una sola volta ciascuna delle cifre 7, 4, 8, 9 e 3, e lo stesso vale per gli altri 26 gruppi, quindi la risposta è true.

lock icon+16 test nascosti all’invio

challenge icon

Per approfondire

Generalizza il controllo per una griglia 16 × 16 con riquadri 4 × 4 e i simboli da 1 a 9 e da A a G. Quali numeri nel tuo codice dipendono dalle dimensioni della griglia e come diventa la formula per il riquadro?

Ripristina il codice
def isValidSudoku(board):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

true