LeetCode 题解:127. 单词接龙,BFS+ 生成所有可能新单词再匹配,JavaScript,详细注释
原题链接:127. 单词接龙
解题思路:
使用队列进行BFS,队列中的每个元素都存储当前层的字符串与当前转换长度。
将wordList保存为Set,用于查找每一层转换的单词,如果找到就从Set中删除,以减少遍历次数。
每次循环都出队一个元素,同时生成当前单词所有可能被替换的情况,以单词hit为例,新生成的单词为it、ht、hi*,*号可被a-z替代。
将所有可能的新单词在wordList中,表示该单词为下一层的元素,即可把该单词入队,同时转换长度加一。
如果新单词与endWord相等,表示找到了最短转换序列,返回当前长度即可。
需要注意的测试用例:
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/f4346ccfdc00648fe8813e719】。文章转载请联系作者。
评论