49. Group Anagrams
題目網址:https://leetcode.cn/problems/group-anagrams/
題意:給一 string list
strs
, 其中strs[i]
僅由小寫字母所組成, 將strs
中的字母異位詞 (Anagram) 進行分組, 可按任意順序返回。字母異位詞 (Anagram) 定義 :若
s
和t
中每個字母的出現次數都相同, 則s
和t
互為字母異位詞。
Solution 1:
想法:利用 Sorting + hash table, 遍歷每個 string
s
, 並對其進行排序得到 string key, 將key
和對應的s
加入到 hash table 中。最後再根據key
取出整個 group 即可
class Solution { |
- time:$O(m \cdot n \cdot log(n))$ ➔ 其中
m
為 string 的個數,n
為 string 的平均長度。- $O(n \cdot log(n))$:
s
進行 sorting 的時間
- $O(n \cdot log(n))$:
- space:$O(m \cdot n)$ ➔ hash table 中儲存所有的 string
Solution 2:
想法:利用 hash table, 紀錄每個 string
s
中每種 char 出現的頻率, 並把每種 char 的頻率當作是 key, 連同s
一起加入到 hash table 中
class Solution { |
- time:$O(m \cdot n)$ ➔ 所有 string 中每種 char 的出現頻率, 其中
m
為strs
的元素個數,n
為strs[i]
的平均長度 - space:$O(m \cdot n)$ ➔
groups
儲存所有的 string
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論