“常用公式”在线计算,“设计手册”在线查询
Given two words (start and end),and a dictionary, find all shortest transformation sequence(s) from start toend,such that:1.Only one letter can be changed at a time2.Each intermediate word must exist in thedictionaryFor example,Given:start = "hit"end = "cog"dict =["hot","dot","dog","lot","log"]Return:[["hit","hot","dot","dog","cog"],["hit","hot","lot","log","cog"Note:·All words have the same length.·All words contain only lowercasealphabetic characters.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 2 个关于本帖的回复 最后回复于 2013-7-30 13:14

沙发
季良 新来的 发表于 2013-7-30 13:14:27 | 只看该作者
研发埠培训中心
没做过,随便谈谈自己想法。把dictionary按照是否相连做个图,o(n^2)然后把start和dictionary中每个只差一个字母的连条边,o(n),end也如此连若干条边 o(n)。然后BFS? o(m+n)不知有没有优化了楼主的算法。另外我觉得这题很坑的。关键在于一开始,要建立一个图,看dict中任意两个单词是否只差一个字母用O(n^2)的好像就会超时,于是只能对每个单词,枚举与它只有一个字母不同的所有单词,看是否在dict里,这样就是26*l(单词长度) * n * 查dict的时间(认为是常数吧)
板凳
季良 新来的 发表于 2013-7-30 13:14:34 | 只看该作者
研发埠人才中心
没做过,随便谈谈自己想法。把dictionary按照是否相连做个图,o(n^2)然后把start和dictionary中每个只差一个字母的连条边,o(n),end也如此连若干条边 o(n)。然后BFS? o(m+n)不知有没有优化了楼主的算法。另外我觉得这题很坑的。关键在于一开始,要建立一个图,看dict中任意两个单词是否只差一个字母用O(n^2)的好像就会超时,于是只能对每个单词,枚举与它只有一个字母不同的所有单词,看是否在dict里,这样就是26*l(单词长度) * n * 查dict的时间(认为是常数吧)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台