LeetCode(49) 字母異位詞分組

2022-05-07 08:33:08 字數 977 閱讀 3291

medium!

題目描述:

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

示例:

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

輸出:[

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

["nat","tan"],

["bat"]

]

說明:

解題思路:

這道題讓我們群組給定字串集中所有的錯位詞(異位詞),所謂的錯位詞就是兩個字串中字母出現的次數都一樣,只是位置不同,比如abc,bac, cba等它們就互為錯位詞,那麼我們如何判斷兩者是否是錯位詞呢,我們發現如果把錯位詞的字元順序重新排列,那麼會得到相同的結果,所以重新排序是判斷是否互為錯位詞的方法,由於錯位詞重新排序後都會得到相同的字串,我們以此作為key,將所有錯位詞都儲存到字串陣列中,建立key和字串陣列之間的對映,最後再存入結果res中即可。

c++解法一:

1

class

solution

11for

(auto a : m)

14return

res;15}

16 };

下面這種解法沒有用到排序,提高了運算效率,我們用乙個大小為26的int陣列來統計每個單詞中字元出現的次數,然後將int陣列轉為乙個唯一的字串,跟字串陣列進行對映,這樣我們就不用給字串排序了。

c++解法二:

1

class

solution

13for

(auto a : m)

16return

res;17}

18 };

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 說明 此題輸入的是乙個字串陣列,遍歷該陣列,然後將每個字串排序,排序後的字串作為 鍵 存入雜湊表,對應的...