word Ladder

 

class QueueNode
{
public:
    string word;
    int length;
    QueueNode(const string& str, int l):word(str),length(l){}
        
};

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
                if(start.empty()||end.empty()||start.size()!=end.size())
            return 0;
        int nstr = start.size();
        unordered_set<string> set;
        queue<QueueNode> q;
        q.push(QueueNode(start,1));
        set.insert(start);
        while(!q.empty())
        {
            QueueNode node = q.front();
            q.pop();
            if(node.word==end)
                return node.length;
            for(int i=0;i<nstr;i++)
            {
                for(int j=0;j<26;j++)
                {
                    string tmp = node.word;
                    tmp[i] = 'a'+j;
                    if(dict.count(tmp)==1&&set.count(tmp)==0)
                    {
                        set.insert(tmp);
                        q.push(QueueNode(tmp,node.length+1));
                    }
                }
            }
            
        }
        return 0;
        
    }
};

  

原文链接: https://www.cnblogs.com/summer-zhou/p/3246686.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    word Ladder

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/99072

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午5:03
下一篇 2023年2月10日 上午5:06

相关推荐