Menu
CoddyTech

Valid Sudoku

MoyenHachagepython iconjava iconcpp iconc iconjs icon+10

On vous donne une grille de Sudoku de 9 × 9 sous 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. Renvoyez true si aucun chiffre n’apparaît deux fois dans la même ligne, la même colonne ou le même 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 boîte 3 × 3 ne répète un chiffre, faux sinon

Contraintes

  • board.length == 9 et board[i].length == 9
  • board[i][j] est un chiffre de 1 à 9 ou .
  • Le plateau peut être impossible à compléter ; 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
Chaque ligne, colonne et carré contient chaque chiffre au plus une fois. La ligne 4 (en comptant à partir de 0), .74..89.3, contient une seule fois chacun des chiffres 7, 4, 8, 9 et 3, et il en va de même pour les 26 autres groupes ; la réponse est donc true.

lock icon+16 tests cachés à la soumission

challenge icon

Pour aller plus loin

Généralisez la vérification à une grille de 16 × 16 avec des blocs de 4 × 4 et les symboles de 1 à 9 et de A à G. Quels nombres de votre code dépendent de la taille de la grille, et que devient la formule des blocs ?

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

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

true