diff options
Diffstat (limited to 'word_ladder.cpp')
-rw-r--r-- | word_ladder.cpp | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/word_ladder.cpp b/word_ladder.cpp deleted file mode 100644 index dfe6b00..0000000 --- a/word_ladder.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "leetcode.h" - -class Solution { -public: - int ladderLength(string beginWord, string endWord, vector<string> &wordList) { - unordered_set<string> dict(wordList.begin(), wordList.end()); - queue<string> q; - q.push(beginWord); - int ladder = 1; - while (!q.empty()) { - int n = q.size(); // - for (int i = 0; i < n; i++) { - string word = q.front(); - q.pop(); - if (word == endWord) - return ladder; - dict.erase(word); - for (int j = 0; j < word.size(); j++) { - char c = word[j]; - for (int k = 0; k < 26; k++) { - word[j] = 'a' + k; - if (dict.find(word) != dict.end()) - q.push(word); - } - word[j] = c; - } - } - ladder++; - } - return 0; - } -}; - -int main() { - Solution obj; - string beginWord = "hit", endWord = "cog"; - vector<string> wordList = {"hot", "dot", "dog", "lot", "log", "cog"}; - cout << obj.ladderLength(beginWord, endWord, wordList); -} |