Menu
CoddyTech

Valid Sudoku

MoyenHachagepython iconjava iconcpp iconc iconjs icon+10

Tu reçois une grille de Sudoku de 9 × 9 sous la forme de board, une liste de 9 chaînes de 9 caractères chacune, une chaîne par ligne. Chaque caractère est un chiffre de 1 à 9 ou . pour une case vide. Renvoie true si aucun chiffre n’apparaît deux fois dans une ligne, une colonne ou un carré de 3 × 3, et false sinon. Seules les cases remplies sont vérifiées : la grille n’a pas besoin d’être résoluble.

Fonction

isValidSudoku(board: string-array) → boolean
boardstring-array
9 chaînes de 9 caractères, une par ligne, chiffres de 1 à 9 et . pour une case vide
Renvoieboolean
vrai si aucune ligne, colonne ou case 3 × 3 ne contient plusieurs fois le même chiffre, faux sinon

Contraintes

  • board.length == 9 et board[i].length == 9
  • board[i][j] est un chiffre compris entre 1 et 9, ou .
  • Il peut être impossible de compléter le plateau ; seules les répétitions parmi les cases remplies comptent.

Exemples

Entrée
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Sortie
true
Explication
La ligne 4, en comptant à partir de 0, .74..89.3, contient une fois chacun des chiffres 7, 4, 8, 9 et 3, et aucun des 26 autres groupes ne répète non plus un chiffre.
challenge icon

Pour aller plus loin

Comment vérifieriez-vous un plateau de 16 × 16 avec des blocs de 4 × 4 et les symboles de 1 à 9 et de A à G ? Que devient la formule des blocs ?

Réinitialiser le code
def isValidSudoku(board):
    # Écrivez le code ici

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

Résultat attendu

true