跳至主要内容

127. 单词接龙

class Solution {
public:
    int ladderLength(string beginWord, string endWord, vector<string>& wordList) {
       
        map<int, map<string, vector<string>>> tree;

        for (int i = 0; i < wordList.size(); i++)
        {
            for (int j = 0; j < wordList[i].size(); j++)
            {
                string s = wordList[i];
                s.erase(j, 1);
                map<string, vector<string>> & m = tree[j];
                m[s].push_back(wordList[i]);
            }
        }

        list<pair<string, int>> queue;
        queue.push_back(make_pair(beginWord,1 ));

        set<string> tmp;

        while (true)
        {
            if (queue.empty())
                return 0;

            string s = queue.front().first;
            int curstep = queue.front().second;

            queue.pop_front();

            for (int i = 0; i < s.size(); i++)
            {
                string ss = s;
                ss.erase(i, 1);

                map<string, vector<string>> & tt = tree[i];

                if (tt.find(ss) != tt.end())
                {
                    vector<string> & vt = tt[ss];

                    for (int j = 0; j < vt.size(); j++)
                    {
                        if (vt[j] == endWord)
                        {
                            return curstep + 1;
                        }

                        if (tmp.find(vt[j]) == tmp.end())
                        {
                            queue.push_back(make_pair(vt[j], curstep + 1));
                            tmp.insert(s);
                        }
                    }
                }
            }
        }

        return 0;
    }
};

评论

此博客中的热门博文

老毛子路由器无线桥接问题

  信道带宽:改成20M  关闭 DHCP 服务器  关闭动态 (DHCP) 路由 修改IP地址从192.168.123.1到192.168.1.114  无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择LAN bridge 连上上级wifi done 路由器自身可能上不去网,执行: route add default  gw 192.168.1.1 不过这种方式无法翻墙 ////////////////////////////////////////////////////////////// 第二种方式 不改信道不关闭DHCP,保持网段是192.168.123.1 无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择WAN 连上上级wifi done 路由器可以翻墙,但是192.168.1.1的机器访问不了192.168.123.1的机器 解决方法: 在192.168.123.1的机器把想要访问的机器比如192.168.123.100设置DMZ主机,这样就可以访问了,在 192.168.1.1能看到分配的ip比如192.168.1.115