leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

给定字典中的两个词,长度相等。写一个方法,把一个词转换成另一个词, 但是一次只能改变一个字符。每一步得到的新词都必须能在字典中找到。

编写一个程序,返回一个可能的转换序列。如有多个可能的转换序列,你可以返回任何一个。

示例 1:

输入:
beginWord = "hit",
endWord = "cog",
wordList = ["hot","dot","dog","lot","log","cog"]

输出:
["hit","hot","dot","lot","log","cog"]

示例 2:

输入:
beginWord = "hit"
endWord = "cog"
wordList = ["hot","dot","dog","lot","log"]

输出:[]

解释:endWord "cog" 不在字典中,所以不存在符合要求的转换序列。
通过次数
16.7K
提交次数
41.1K
通过率
40.8%


相关企业

提示 1
从一个蛮力的递归解法开始。只需要创建所有一次编辑的单词,检查它们是否在字典中,然后尝试该编辑路径。

提示 2
一旦你有了一个蛮力解法,就可以尝试找到一个更快的方法以得到所有一次编辑的有效单词。当绝大多数字符串都不是有效的字典单词时,你不会想创建所有一次编辑的字符串。

提示 3
为了快速得到编辑距离为1的有效单词,试着将字典中的单词以一种有效的方式进行分组。注意,b_ll形式的所有单词(如bill、ball、bell和bull)的编辑距离为1。然而,这些并不是仅有的编辑距离为1的单词。

提示 4
创建从通配符形式(如b_ll)到该通配符所匹配的所有单词的映射。然后,当你想要查找与bill相隔编辑距离为1的所有单词时,可以在映射中查找_ill、b_ll、bi_l和bil_。

提示 5
你之前的算法可能类似于深度优先搜索。你能使它更快吗?

提示 6
广度优先的搜索通常比深度优先的搜索要快。在最坏的情况下未必如此,但在很多情况下都是这样。为什么?你能找到更快的方法吗?

提示 7
如果同时从起始单词和目标单词开始进行广度优先搜索,结果会怎样?

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
beginWord =
"hit"
endWord =
"cog"
wordList =
["hot","dot","dog","lot","log","cog"]
Source