Leetcode_word-ladder(c++ version)
来源:互联网 发布:淘宝如何分期买手机 编辑:程序博客网 时间:2024/06/08 13:34
地址:http://oj.leetcode.com/problems/word-ladder/
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 length 5
.
Note:
- Return 0 if there is no such transformation sequence.
- All words have the same length.
- All words contain only lowercase alphabetic characters.
2. 一次广搜到结果后即可返回
设置visited防止回搜
参考代码:
class Solution {public: int ladderLength(string start, string end, unordered_set<string> &dict) { if(dict.empty() || start == end) return 0; queue<string>strq; queue<int>depq; strq.push(start); depq.push(1); string cur, nxt; int depth; unordered_set<string> visited; while(!strq.empty()) { nxt = cur = strq.front(); strq.pop(); depth = depq.front(); depq.pop(); if(cur == end) return depth; for(int i = 0; i < cur.length(); ++i) { for(char ch = 'a'; ch<='z'; ++ch) { if(ch!=cur[i]) { nxt[i] = ch; if(dict.find(nxt)!=dict.end() && visited.find(nxt)==visited.end()) { visited.insert(nxt); strq.push(nxt); depq.push(depth+1); } nxt = cur; } } } } return 0; }};
0 0
- Leetcode_word-ladder(c++ version)
- LeetCode_Word Ladder
- LeetCode_Word Ladder
- Leetcode_word-ladder-ii
- leetCode_Word Ladder【BFS】
- Leetcode_word-search(c++ version)
- Leetcode_word-break(c++ and python version)
- LeetCode_Word Break
- LeetCode_Word Search
- leetcode_Word Break
- leetcode_Word Search
- leetcode_Word Pattern
- leetcode_Word Pattern
- leetCode_Word Break
- leetCode_Word BreakII
- [CF 279C]Ladder[segment]
- codeforces 279C C. Ladder(rmq+预处理)
- [C++]LeetCode: 130 Word Ladder (BFS)
- 常用docker命令,及一些坑
- 虚拟机的启动内核日志
- diary20140515---深邃之思-movie
- 推荐一本好书:《Linux从入门到精通》(刘忆智)
- POJ 2506
- Leetcode_word-ladder(c++ version)
- 【原创】Source Insight入门、简单配置和简单技巧
- ubuntu/centos 网络配置记录
- Linux下sed 指令详解。
- SSH框架问题——java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener报错
- C语言学习资源推荐
- android ImageView scaleType属性
- 拓扑入门 poj2367 Genealogical tree
- 使用logstash+elasticsearch+kibana快速搭建日志平台