49 字母以為詞分組 雜湊表 字串

2021-10-23 07:20:49 字數 769 閱讀 6268

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

示例:

輸入: [

"eat", "tea", "tan", "ate", "nat", "bat"

]輸出:[[

"ate","eat","tea"

], [

"nat","tan"

], [

"bat"

]]

說明: 思路

對每個字串排序,排完序相等的屬於同一組。用字典會快一點

**實現:

class

solution

(object):

defgroupanagrams

(self, strs)

:"""

:type strs: list[str]

:rtype: list[list[str]]

"""d =

for s in strs:

key =

tuple

(sorted

(s))

d[key]

= d.get(key,

)+[s]return d.values(

)

每次從list裡取乙個字串,排序後,作為key放入字典中。

最後返回字典的value

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...