【发布时间】:2010-12-04 01:33:14
【问题描述】:
对于数据结构项目,我必须找到两个单词之间的最短路径(如"cat" 和"dog"),一次只更改一个字母。我们得到了一个拼字游戏单词列表,用于寻找我们的路径。例如:
cat -> bat -> bet -> bot -> bog -> dog
我已经使用广度优先搜索解决了这个问题,但我正在寻找更好的东西(我用 trie 表示字典)。
请给我一些关于更有效方法的想法(在速度和内存方面)。一些荒谬和/或具有挑战性的东西是首选。
我问了我的一个朋友(他是一名大三学生),他说对于这个问题没有没有有效的解决方案。他说当我参加算法课程时,我会知道为什么。有什么相关的吗?
我们必须逐字逐句。我们不能去cat -> dat -> dag -> dog。我们还必须打印出遍历。
【问题讨论】:
-
在你的例子中,为什么赌在那里?你连续两次更改同一个字母,它应该是:cat -> bat -> bot -> bog -> dog
-
Dacman,您介意分享一下使用启发式算法与 BFS 相比您的性能提高了多少?
-
顺便说一句,从猫到狗的最短路径是 cat >> cot >> cog >> dog :)
标签: algorithm shortest-path edit-distance hamming-distance