LeetCode 127 中等 單詞接龍

2021-09-11 10:48:39 字數 1231 閱讀 3359

給定兩個單詞(beginword 和 endword)和乙個字典,找到從 beginword 到 endword的最短轉換序列的長度。轉換需遵循如下規則:

每次轉換只能改變乙個字母。

轉換過程中的中間單詞必須是字典中的單詞。

說明:

示例 1:

輸入:

beginword = "hit",

endword = "cog",

wordlist = ["hot","dot","dog","lot","log","cog"]

輸出:5

解釋:乙個最短轉換序列是 "hit" -> "hot" -> "dot" -> "dog" -> "cog",

返回它的長度 5。

示例 2:

輸入:

beginword = "hit"

endword = "cog"

wordlist = ["hot","dot","dog","lot","log"]

輸出:0

解釋:endword "cog" 不在字典中,所以無法進行轉換。

這是從首和尾兩邊開始,當遇到同乙個單詞的時候則結束

這裡涉及到了unordered_set的知識點

其中find() 函式,會返回乙個迭代器。這個迭代器指向和引數雜湊值匹配的元素,如果沒有匹配的元素,會返回這個容器的結束迭代器。

class solution 

unordered_setbeginset;

unordered_setendset;

int step = 1;

for (; !beginset.empty();)

for (auto s : beginset)

if (endset.find(str) != endset.end())

tempset.insert(str);

//直到在worddict中找到了str,且str不在endset中,則插入到tempset中}}

}if (tempset.size() < endset.size()) else

}return 0;

}};

LeetCode 127 單詞接龍 中等

給定兩個單詞 beginword 和 endword 和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下 規則 每次轉換只能改變乙個字母。轉換過程中的中間單詞必須是字典中的單詞。說明 如果不存在這樣的轉換序列,返回 0。所有單詞具有相同的長度。所有單詞只...

LeetCode 127 單詞接龍

解題思路 1 這道題要找乙個最短路徑,可以聯想到圖的相關演算法 雖然我當時沒想到 那麼是不是應該使用最短路徑的相關演算法呢。其實不用 因為這個圖里每條邊的長度都是1,用乙個廣度優先演算法就搞定了。2規模的問題,如果你遍歷list裡的每個單詞的話,你會發現一直超時,因為有的list的規模給到了上千,每...

Leetcode 127單詞接龍

給定兩個單詞 beginword 和 endword 和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下規則 每次轉換只能改變乙個字母。轉換過程中的中間單詞必須是字典中的單詞。說明 示例 1 輸入 beginword hit endword cog wo...