word-ladder
来源:互联网 发布:ecshop源码下载 编辑:程序博客网 时间:2024/05/21 09:52
Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:
Only one letter can be changed at a time
Each intermediate word must exist in the dictionary
For example,
Given:
start =”hit”
end =”cog”
dict =[“hot”,”dot”,”dog”,”lot”,”log”]
As one shortest transformation is”hit” -> “hot” -> “dot” -> “dog” -> “cog”,
return its length5.
Note:
Return 0 if there is no such transformation sequence.
All words have the same length.
All words contain only lowercase alphabetic characters.
可以利用广度优先搜索寻找最短的路径,需要注意的是如果可以修改字典,那么就不需要另外的数组来存储是否访问过了.另外可以用last和nlast的方法记录层数
class Solution {public:int ladderLength(string start, string end, unordered_set<string> &dict) { if (start == end) return 0; int count = 2; queue<string> que; que.push(start); string last = start; string nlast = start; while (!que.empty()) { string temp = que.front(); que.pop(); for (int i = 0; i<temp.size(); ++i) { char a = temp[i]; for (int k = 0; k<26; ++k) { temp[i] = k + 'a'; if (temp == end) return count; if (dict.find(temp) != dict.end()) { que.push(temp); nlast = temp; dict.erase(temp); } } temp[i] = a; //恢复temp } if (temp == last) //一层遍历完毕 { ++count; last = nlast; } } return 0;}};
0 0
- Word Ladder
- Word Ladder
- word ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Maven常见问题、异常、错误整理【持续更新】
- 前端实时搜索功能
- 重修大学JAVA课--应用类型比较器的实现方法
- HTML中属性id和属性name有何区别?
- CMD查看本机IP
- word-ladder
- poj 2761 feeding the dog (splay树 模板)
- Abaqus建模受力分析
- java I/O流(一)——FileWriter,BufferedWriter,inputStream,BufferedInputStream,InputStreamReader
- linux中math.h库的使用
- zstack(0)前言
- 多项式求和
- 示例:在约会网站上使用k-近邻算法
- Arcgis开发各种记录。。