127. Word Ladder
class Solution { public: int ladderLength(string beginWord, string endWord, vector<string>& wordList) { unordered_set<string> s(wordList.begin(), wordList.end()); if (s.find(endWord) == s.end() || beginWord == endWord) return 0; queue<string> q; q.push(beginWord); s.erase(beginWord); int lv = 1; while (!q.empty()) { lv++; int qs = q.size(); while (qs-- > 0) { beginWord = q.front(); q.pop(); for (int i = 0; i < beginWord.length(); i++) { char back = beginWord[i]; for (char c = 'a'; c <= 'z'; c++) { beginWord[i] = c; if (beginWord == endWord) return lv; if (s.find(beginWord) == s.end()) continue; s.erase(beginWord); q.push(beginWord); } beginWord[i] = back; } } } return 0; } };
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步