Menu
CoddyTech

Word Ladder

Тебе даны два слова — beginWord и endWord — и список слов wordList. Лесенка начинается с beginWord, заканчивается endWord, и в каждом следующем слове меняется ровно одна буква. Каждое слово после beginWord должно быть из wordList, поэтому endWord обязательно должно быть в этом списке; beginWord может в нём отсутствовать.

Верни количество слов в кратчайшей лесенке, включая оба конца, или 0, если такой лесенки нет.

Функция

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
первое слово в лестнице
endWordstring
слово, которого должна достичь лестница
wordListstring-array
слова, из которых должны браться все последующие шаги
Возвращаетinteger
количество слов в кратчайшей цепочке или 0, если её нет

Ограничения

  • 1 ≤ beginWord.length ≤ 10
  • endWord и каждое слово в wordList имеют ту же длину, что и beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Все слова содержат только строчные английские буквы.
  • beginWord != endWord
  • Слова в wordList все разные. beginWord может быть одним из них, а может и не быть.

Примеры

Ввод
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Вывод
4
Пояснение
lead и gold различаются тремя буквами, поэтому в цепочке должно быть не менее 4 слов, и в цепочке lead, load, goad, gold их 4. lend и lewd — тупиковые варианты.
challenge icon

Дополнительный вопрос

Можешь вернуть одну кратчайшую цепочку целиком — слова по порядку, а не её длину?

Сбросить код
def ladderLength(beginWord, endWord, wordList):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргументы

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

Ожидаемый вывод

4