# 单词接龙

字典 wordList 中从单词 beginWord endWord转换序列 是一个按下述规格形成的序列:

给你两个单词 beginWord endWord 和一个字典 wordList ,找到从 beginWord 到 endWord最短转换序列 中的 单词数目 。如果不存在这样的转换序列,返回 0。

 

示例 1:

输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]
输出:5
解释:一个最短转换序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog", 返回它的长度 5。

示例 2:

输入:beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"]
输出:0
解释:endWord "cog" 不在字典中,所以无法进行转换。

 

提示:

## template ```python class Solution: def ladderLength(self, beginWord, endWord, wordList): """ :type beginWord: str :type endWord: str :type wordList: List[str] :rtype: int """ if endWord not in wordList: return 0 if beginWord in wordList: wordList.remove(beginWord) wordDict = dict() for word in wordList: for i in range(len(word)): tmp = word[:i] + "_" + word[i + 1 :] wordDict[tmp] = wordDict.get(tmp, []) + [word] stack, visited = [(beginWord, 1)], set() while stack: word, step = stack.pop(0) if word not in visited: visited.add(word) if word == endWord: return step for i in range(len(word)): tmp = word[:i] + "_" + word[i + 1 :] neigh_words = wordDict.get(tmp, []) for neigh in neigh_words: if neigh not in visited: stack.append((neigh, step + 1)) return 0 ``` ## 答案 ```python ``` ## 选项 ### A ```python ``` ### B ```python ``` ### C ```python ```