Word Ladder 单词台阶
来源:互联网 发布:单片机新颖毕业设计 编辑:程序博客网 时间:2024/05/16 02:03
class Solution {
public:
int ladderLength(string start, string end, unordered_set<string> &dict) {
unordered_map<string,string> father;
unordered_set<string> isvisited;
queue<string> current,next;
bool found=false;
int level=0;
current.push(start);
while(!current.empty()&&!found)
{
level++;
while(!current.empty()&&!found)
{
string str=current.front();
current.pop();
for(int i=0;i<str.size();i++)
{
string newword(str);
for(char c='a';c<='z';c++)
{
if(c==newword[i])
continue;
swap(c,newword[i]);
if(newword==end)
{
father[newword]=str;
found=true;
break;
}
if(dict.count(newword)>0&&!isvisited.count(newword))
{
father[newword]=str;
next.push(newword);
isvisited.insert(newword);
}
swap(newword[i],c);
}
}
}
swap(next,current);
}
if(found) return level+1;
else return 0;
}
};
public:
int ladderLength(string start, string end, unordered_set<string> &dict) {
unordered_map<string,string> father;
unordered_set<string> isvisited;
queue<string> current,next;
bool found=false;
int level=0;
current.push(start);
while(!current.empty()&&!found)
{
level++;
while(!current.empty()&&!found)
{
string str=current.front();
current.pop();
for(int i=0;i<str.size();i++)
{
string newword(str);
for(char c='a';c<='z';c++)
{
if(c==newword[i])
continue;
swap(c,newword[i]);
if(newword==end)
{
father[newword]=str;
found=true;
break;
}
if(dict.count(newword)>0&&!isvisited.count(newword))
{
father[newword]=str;
next.push(newword);
isvisited.insert(newword);
}
swap(newword[i],c);
}
}
}
swap(next,current);
}
if(found) return level+1;
else return 0;
}
};
0 0
- Word Ladder 单词台阶
- Word Ladder II 单词台阶II,求路径
- ***[Lintcode]Word Ladder 单词接龙
- Word Ladder(单词阶梯)
- 单词变换路径 Word Ladder II
- [LeetCode]—Word Ladder 单词递推
- LeetCode | Word Ladder(单词梯)
- LeetCode 127. Word Ladder(单词梯子)
- 单词台阶
- LeetCode | Word Ladder II(单词梯II)
- LeetCode 126. Word Ladder II(单词梯子)
- 127. Word Ladder 单词间的最短路径
- 120.Word Ladder-单词接龙(中等题)
- [LeetCode] 把一个单词变形成为另一个单词,每次变形只改变一个单词 word ladder
- Word Ladder
- Word Ladder
- word ladder
- Word Ladder
- 堆和栈的区别
- ARM (FS_S5PC100)系统移植一 环境搭建
- IOS面试题
- 著名成功人士的人生理念
- C++11 语法记录
- Word Ladder 单词台阶
- android图片高斯模糊的方法
- Extjs 4.2 动态更新panel内容
- foxmailRss订阅如何实现分组
- 三句话影响人的一生
- POJ 3164 最小树形图裸题
- NYOJ 5 Binary String Matching
- 三句话影响人的一生
- 人生感悟真言