力扣 49 字母異位詞分組

2022-04-09 13:57:38 字數 652 閱讀 8308

傳送門

輸入: ["eat", "tea", "tan", "ate", "nat", "bat"]

輸出:[

["ate","eat","tea"],

["nat","tan"],

["bat"]

]這個題用stl的容器來做會簡單很多。

如何判斷兩個字串是字母異位詞,可以將這些字串按照字典進行排序,這樣排序後的字串是一樣的。

這樣引入乙個hash,索引是排序後的字串,值是儲存同一字母異位詞的結果vector,最後掃一遍hash輸出即可。

#include class

solution

int len = hash.size(), index = 0

; vector

string>>ans(len);

for (const auto&i : hash)

return

ans;

}};

這裡用了c++11的新特性,簡單說明一下。

unordered_map是乙個關聯容器,同map一樣儲存鍵-值,但是元素不會按照任何次序排列,如其名unordered。它也可以通過鍵key快速訪問對應位置的value。

c++11也推出了auto來方便管理容器的迭代器。

49 字母異位詞分組

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。思路 這個題的思路非常清晰,遍歷字串陣列,對其中每乙個...

49 字母異位詞分組

arrays.sort排序的時間複雜度為o slogs 外面還有n次迴圈,總共為nslogs,s為字串的長度。空間複雜度為o ns hashmap儲存了每個字串 1 我對arraylist操作不熟,還有arrays.sort 得趕緊學習了 2 乙個字串會有原始字元,所以只要知道原始字元,原始字元下一...

49 字母異位詞分組

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 1.對每個子串排序生成乙個新的陣列,構造乙個字典d,遍歷新陣列往字典裡放 o nklogk o nk 2...