Menu
CoddyTech

Word Ladder

DifficileGraphesFilepython iconjava iconcpp iconc iconjs icon+10

On te donne deux mots, beginWord et endWord, ainsi qu’une liste de mots wordList. Une chaîne commence par beginWord, se termine par endWord et change exactement une lettre d’un mot au suivant. Chaque mot après beginWord doit provenir de wordList, donc endWord doit s’y trouver ; ce n’est pas nécessaire pour beginWord.

Renvoie le nombre de mots de la chaîne la plus courte, en comptant les deux extrémités, ou 0 s’il n’y en a aucune.

Fonction

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
le premier mot de l’échelle
endWordstring
le mot the ladder doit atteindre
wordListstring-array
les mots dont chaque étape ultérieure doit provenir
Renvoieinteger
le nombre de mots dans la séquence la plus courte, ou 0 s’il n’y en a aucune

Contraintes

  • 1 ≤ beginWord.length ≤ 10
  • endWord et chaque mot de wordList ont la même longueur que beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Tous les mots sont composés uniquement de lettres minuscules de l’alphabet anglais.
  • beginWord != endWord
  • Les mots de wordList sont tous différents. beginWord peut ou non en faire partie.

Exemples

Entrée
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Sortie
4
Explication
lead et gold diffèrent par trois lettres, donc une échelle nécessite au moins 4 mots, et lead, load, goad, gold en contient 4. lend et lewd sont des impasses.
challenge icon

Pour aller plus loin

Peux-tu renvoyer une des séquences les plus courtes elle-même, avec les mots dans l’ordre, plutôt que sa longueur ?

Réinitialiser le code
def ladderLength(beginWord, endWord, wordList):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

beginWord = "lead"
endWord = "gold"
wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]

Résultat attendu

4