【剑斩OFFER】算法的暴力美学——力扣 127 题:单词接龙

一、题目描述

二、算法原理

思路:跟边权为 1 的最短路径一样,使用 BFS 算法就能解决

https://blog.csdn.net/2403_84958571/article/details/157183596?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

三、代码实现

cpp 复制代码
class Solution {
public:
    int ladderLength(string beginWord, string endWord, vector<string>& wordList) {

        unordered_set<string> hash_w(wordList.begin(),wordList.end());//单词库
        unordered_set<string> hash_b;
        hash_b.insert(beginWord);//防止遍历过

        queue<string> que;//使用队列实现 BFS 
        que.push(beginWord);

        int count = 1;//记录最短实现的步骤

        while(que.size())
        {
            int qor = que.size();
            count++;//每层都会有个变化的单词
            while(qor--)
            {
                string tmp = que.front();
                que.pop();
                for(int i = 0; i < tmp.size(); i++)
                {
                    for(char k = 'a'; k <= 'z'; k++)//枚举各种可能
                    {
                        string tmp_str = tmp;
                        tmp_str[i] = k;
                        if(!hash_b.count(tmp_str) && hash_w.count(tmp_str))//让下一个层进入
                        {
                            que.push(tmp_str);
                            hash_b.insert(tmp_str);
                            if(tmp_str == endWord) return count;
                        }
                    }
                }
            }
        }

        //无法演化到 endword
        return 0;

    }
};
相关推荐
仰泳的熊猫1 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
似水明俊德4 小时前
02-C#.Net-反射-面试题
开发语言·面试·职场和发展·c#·.net
无极低码4 小时前
ecGlypher新手安装分步指南(标准化流程)
人工智能·算法·自然语言处理·大模型·rag
软件算法开发5 小时前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
superior tigre5 小时前
22 括号生成
算法·深度优先
腾阳6 小时前
99%的人忽视了这一点:活着本身就是人生的意义,别让抑郁和内耗成为你的枷锁!
经验分享·程序人生·职场和发展·跳槽·学习方法·媒体
不吃西红柿的856 小时前
[职场] 内容运营求职简历范文 #笔记#职场发展
笔记·职场和发展·内容运营
liyang_8306 小时前
邦芒秘诀:职场高手都具备的三个特征
职场和发展
普通网友6 小时前
十大秘闻:揭秘霍兰德职业兴趣理论的未知面!
职场和发展·求职招聘·职场发展·单一职责原则