Menu
CoddyTech

Word Ladder

困难图队列python iconjava iconcpp iconc iconjs icon+10

你会得到两个单词: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