LeetCode 49 字母異位詞分組 雜湊

2021-09-27 09:12:14 字數 868 閱讀 4576

難度:中等

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。

示例:

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

輸出:[

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

["nat","tan"],

["bat"]

]說明:

+ 所有輸入均為小寫字母。

+ 不考慮答案輸出的順序。

包含的字母相同,但是排列可以不同的字串實際上就代表乙個可重集,題目要求把代表同乙個可重集的字串放到乙個列表中,可以用unordered_map記錄可重集對應的列表的編號,這就涉及到如何計算可重集的key,注意到實際上每個正整數就能夠代表乙個獨特的可重集——質因數分解。但是這個整數很可能會很大,所以使用乙個較大的素數對結果取模,比如說1e8+7。

class

solution

;static array<

int,

26>

feature

(const string &s)

;for

(auto

&i : s) f[i -

'a']++;

return f;

}struct equal_to };

struct hash };

vector>

groupanagrams

(vector

&strs)

else);

}return ans;}}

;

LeetCode49 字母異位詞分組

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。設定乙個map向量,專門用來統計字串中,所有字元出現的...

LeetCode 49 字母異位詞分組

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。這道題的意思就是把含有相同字母的單詞歸類而已,思路其實...

LeetCode 49 字母異位詞分組

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 此題輸入的是乙個字串陣列,遍歷該陣列,然後將每個字串排序,排序後的字串作為 鍵 存入雜湊表,對應的...