[leetcode]127. Word Ladder
来源:互联网 发布:中走丝hf上下异形编程 编辑:程序博客网 时间:2024/06/05 19:11
题目链接:https://leetcode.com/problems/word-ladder/description/
Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord, such that:
- Only one letter can be changed at a time.
- Each transformed word must exist in the word list. Note that beginWord is not a transformed word.
For example,
Given:
beginWord = "hit"
endWord = "cog"
wordList = ["hot","dot","dog","lot","log","cog"]
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.
- You may assume no duplicates in the word list.
- You may assume beginWord and endWord are non-empty and are not the same.
UPDATE (2017/1/20):
The wordList parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes.
class Solution {public: int ladderLength(string beginWord, string endWord, vector<string>& wordList) { unordered_set<string> wordDict(wordList.begin(),wordList.end()); queue<string> toVisit; addNextWords(beginWord,wordDict,toVisit); int dist=2; while(!toVisit.empty()) { int num=toVisit.size(); for(int i=0;i<num;i++) { string word=toVisit.front(); toVisit.pop(); if(word==endWord) return dist; addNextWords(word,wordDict,toVisit); } dist++; } return 0; }private: void addNextWords(string word,unordered_set<string>& wordDict,queue<string>& toVisit) { wordDict.erase(word); for(int p=0;p<(int)word.length();p++) { char letter=word[p]; for(int k=0;k<26;k++) { word[p]='a'+k; if(wordDict.find(word)!=wordDict.end()) { toVisit.push(word); wordDict.erase(word); } } word[p]=letter; } }};
阅读全文
0 0
- [LeetCode]127.Word Ladder
- [Leetcode] 127. Word Ladder
- [leetcode] 127.Word Ladder
- Leetcode-127.Word Ladder
- 127. Word Ladder LeetCode
- Leetcode 127. Word Ladder
- LeetCode 127. Word Ladder
- leetcode 127. Word Ladder
- LeetCode 127. Word Ladder
- LeetCode-127.Word Ladder
- Leetcode 127. Word Ladder
- [leetcode] 127. Word Ladder
- [LeetCode] 127. Word Ladder
- 【LeetCode】127. Word Ladder
- LeetCode 127. Word Ladder
- Leetcode-127. Word Ladder
- LeetCode 127. Word Ladder
- Leetcode 127. Word Ladder
- hdu 2048 神、上帝以及老天爷
- 面向切面编程AOP的浅显理解(一)
- 查找字符串中子字符串出现次数
- 由前序遍历和中序遍历重建二叉树
- 同步异步 阻塞非阻塞
- [leetcode]127. Word Ladder
- 定一个目标吧
- HDU 1049 Climbing Worm
- 1097. Deduplication on a Linked List
- C语言——实例012 素数
- 深度卷积生成对抗网络--DCGAN
- 例说数据结构&STL(六)——heap
- C++沉思录“字符图像”的程序分析
- PID算法简介