leetcode : Group Anagrams
runtime 30 ms, beats 98.10% of cpp submissions
O(mn x log(m)) solution with explanation
tags: hashmap, sorting, string
🔗 link
📖 description
給定一個字串陣列 strs ,將字串分類並組成群組,組成的邏輯是將 anagrams 的字串組在一起,表示使用的字元都相同,排列順序可相同可不相同。
ex. Input: strs = ["eat","tea","tan","ate","nat","bat"] Output: [["bat"],["nat","tan"],["ate","eat","tea"]]
🧠 solution
使用 sort 將每個字串利用 anagrams 分類,因為使用相同字元表示 sort 後的結果是相同的,以此當作 hash table 的 key ,就可以把群組分開。
⏳ time complexity
定義 m 為 字串的長度 ,對每個字串 sort 需要 *O(mlog(m))*,共有 n 個字串,時間複雜度 O(mn x log(m))
總時間複雜度 O(mn x log(m))
📝 code
1 | class Solution { |