Menu
CoddyTech

Word Ladder

DifficileGraphesFilepython iconjava iconcpp iconc iconjs icon+10

Vous recevez deux mots, beginWord et endWord, ainsi qu’une liste de mots wordList. Une chaîne est une séquence de mots qui commence par beginWord, se termine par endWord et dans laquelle une seule lettre change d’un mot au suivant. Chaque mot après beginWord doit provenir de wordList.

Renvoyez le nombre de mots de la chaîne la plus courte, en comptant les deux extrémités, ou 0 si aucune chaîne n’existe. Par exemple, cold, cord, card forment une chaîne de 3 mots. beginWord n’a pas besoin de figurer dans wordList, mais endWord doit y figurer.

Fonction

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
le premier mot de l'échelle
endWordstring
le mot que l’échelle doit atteindre
wordListstring-array
les mots dont chaque étape ultérieure doit provenir
Renvoieinteger
le nombre de mots dans la chaîne 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 anglaises minuscules.
  • beginWord != endWord
  • Les mots de wordList sont tous différents. beginWord peut en faire partie ou non.

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 aucune échelle ne comporte moins de 4 mots, et lead, load, goad, gold en comporte exactement 4. lend et lewd ne diffèrent aussi que d’une lettre de lead, mais aucun des deux ne mène à un nouvel endroit, et bold ne peut être atteint qu’à partir de gold lui-même.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu renvoyer l’une des séquences les plus courtes elle-même, avec les mots dans l’ordre, et pas seulement sa longueur ?

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

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

4