LeetCode-Word Ladder

来源:互联网 发布:电脑软件图标大全 编辑:程序博客网 时间:2024/05/07 22:06
class Solution {public:    int ladderLength(string start, string end, unordered_set<string> &dict) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        unordered_set<string> visited;        queue<string> Q;        visited.insert(start);        Q.push(start);        int dist = 1;        int cnt = 1;        while (cnt > 0)        {            while (cnt > 0)            {                string s = Q.front();                Q.pop();                for (int i = 0; i < s.size(); ++i)                {                    char tmp = s[i];                    for (char ch = 'a'; ch <= 'z'; ++ch)                        if (ch != tmp)                        {                            s[i] = ch;                            if (s == end)                                return dist + 1;                            if (dict.count(s) > 0 && visited.count(s) == 0)                            {                                visited.insert(s);                                Q.push(s);                            }                        }                    s[i] = tmp;                }                --cnt;            }            ++dist;            cnt = Q.size();        }        return 0;    }};


参考:http://blog.sina.com.cn/s/blog_b9285de20101j1xl.html

原创粉丝点击