leetcod49 字母異位詞分組

2021-09-22 21:27:23 字數 733 閱讀 5790

思路:利用字典,把每乙個元素重新排序放入字典,出現過就放入對應的鍵裡,沒出現就新建乙個鍵

這裡涉及到一鍵多值的用法,可以用set.setdefault()函式實現。

class solution:

def groupanagrams(self, strs: list[str]) -> list[list[str]]:

h = {}

for i in range(len(strs)):

# val = sum([ord(x) for x in strs[i]])

val = ''.join(sorted(strs[i]))

# if val not in h: 這一步可以省掉,直接用setdefault

# h[val] = strs[i]

return list(h.values())

set.setdefault()的用法可以參考以下部落格:

1、python3 字典 setdefault() 方法

1、[python]字典的一鍵多值

2、004_015 python 字典的一鍵多值,即乙個鍵對應多個值

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