Menu
CoddyTech

Letter Combinations of a Phone Number

Sur le clavier d’un téléphone, chaque chiffre de 2 à 9 correspond à quelques lettres : 2 correspond à abc, 3 à def, 4 à ghi, 5 à jkl, 6 à mno, 7 à pqrs, 8 à tuv et 9 à wxyz.

Vous recevez une chaîne digits. Choisissez une lettre pour chaque chiffre, en gardant les chiffres dans leur ordre, et vous obtenez une chaîne que les touches peuvent saisir. Renvoyez toutes ces chaînes, triées dans l’ordre lexicographique (alphabétique). Pour "23", il y a neuf chaînes, de "ad" à "cf".

Fonction

letterCombinations(digits: string) → string-array
digitsstring
les chiffres saisis, chacun compris entre 2 et 9
Renvoiestring-array
chaque chaîne que les touches peuvent saisir, dans l’ordre lexicographique

Contraintes

  • 1 ≤ digits.length ≤ 4
  • Chaque caractère de digits est un chiffre compris entre 2 et 9.
  • La réponse contient au maximum 44 = 256 chaînes.

Exemples

Entrée
digits = "23"
Sortie
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Explication
2 propose a, b, c et 3 propose d, e, f. Chaque première lettre est associée à chaque deuxième lettre, donc il y a 3 × 3 = 9 chaînes, et les énumérer en faisant varier la première lettre le plus lentement permet de les garder triées.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Supposons que tu ne veuilles que les combinaisons qui sont de vrais mots du dictionnaire. Comment éviterais-tu de construire d’abord toutes les chaînes de 4^n caractères ?

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

Cas 1

Cas 2

Cas 3

Entrée

digits = "23"

Attendu

["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]