a***e 发帖数: 413 | 1 https://leetcode.com/problems/word-ladder/
如果也不用其他的如map一类来标记是否已经访问过某个词,有人只用一个queue搞定吗?
class Solution {
public:
int ladderLength(string start, string end, unordered_set &dict) {
int ns=start.size(), ne=end.size();
if (ns==0&&ne==0) return 0;
queue q;
string mid;
q.push(start);
int c=1, find=0;
while(q.empty()!=true)
{
start=q.front();
q.pop();
if ( start==end)
{
find=1;
break;
}
for(int i=0; i
{
mid=start;
for (int j=0; j<26; j++)
{
char tc = 'a'+j;
if (mid[i]!=tc)
{
mid[i]=tc;
if (dict.find(mid)!=dict.end())
{
q.push(mid);
dict.erase(mid);
c++;
if ( mid==end)
return c;
}
else
continue;
}
}
}
}
if (find)
return c;
else
return 0;
}
}; | p*********g 发帖数: 2998 | |
|