Leetcode|Word Ladder
来源:互联网 发布:用友网络未来价值2017 编辑:程序博客网 时间:2024/06/06 10:52
Given two words (beginWord and endWord), and a dictionary, find the length of shortest transformation sequence from beginWord to endWord, 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.
此题采用广度优先搜索,因为每个单词的变换只是遍历每一位,然后更换其他25个字母。如果新的单词在字典里面而且之前没有用过(用map记录),就加入进来。
map的value表示给单词是第几步。key值表示单词。
int ladderLength(string beginWord, string endWord, unordered_set<string>& wordDict) { queue<string> cur; map<string,int> used; used[beginWord]=1; cur.push(beginWord); while(!cur.empty()) { string word=cur.front(); cur.pop(); if(word==endWord) break; for(int i=0;i<word.size();i++){ string tmp=word; for(char c='a';c<='z';c++){ if(c==word[i]) continue; tmp[i]=c; if(wordDict.count(tmp)!=0&&used.find(tmp)==used.end()){ used[tmp]=used[word]+1; cur.push(tmp); } } } } return used.find(endWord)==used.end()?0:used[endWord]; }
0 0
- [Leetcode][python]Word Ladder/Word Ladder II
- [Leetcode] Word Ladder
- LeetCode: Word Ladder
- leetcode 84: Word Ladder
- [leetcode] word ladder
- 【leetcode】Word Ladder
- 【leetcode】Word Ladder II
- LeetCode - Word Ladder
- LeetCode之Word Ladder
- [LeetCode]Word Ladder
- [LeetCode]Word Ladder II
- [Leetcode]Word Ladder
- [leetcode]Word Ladder
- [leetcode] Word Ladder
- [leetcode] Word Ladder II
- LeetCode-Word Ladder
- LeetCode- Word Ladder
- LeetCode - Word Ladder II
- 手斧Linux – 从LFS到Funtoo (101)
- Linux下 跟我一起学makefile,非常简单,一学就会。
- X
- 【待解决-算法】迷宫题
- Linux设备驱动程序基础知识
- Leetcode|Word Ladder
- Struts2开发遇到的问题之多文件上传
- iOS github开源框架
- "Eclipse Compiler for Java " and "Oracle JDK"
- Spring的事务管理的几种方法
- FragmentTransaction.replace() not working
- 手斧Linux – 从LFS到Funtoo (102)
- Ubuntu14.04安装过程中出现《演示和完全安装》的选项,无法正确安装
- 黑马程序员——Java基础---线程的另一个总结(3)--互斥,线程锁