49. Group Anagrams
Group Anagrams
题目描述:
Given an array of strings strs, group the anagrams together. You can return the answer in any order.
An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
Example 1:
Input: strs = [“eat”,”tea”,”tan”,”ate”,”nat”,”bat”]
Output: [[“bat”],[“nat”,”tan”],[“ate”,”eat”,”tea”]]
Example 2:
Input: strs = [“”]
Output: [[“”]]
Example 3:
Input: strs = [“a”]
Output: [[“a”]]
Constraints:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] consists of lowercase English letters.
思路:
使用哈希表,之后把哈希表连接成数字
代码:
func groupAnagrams(strs []string) [][]string {
var res [][]string
if len(strs) <= 1{
res = append(res, strs)
return res
}
mp := make(map[int64][]string, 0)
var num int64
for _,v := range strs{
freq := make([]int64, 27)
for i:=0;i<len(v);i++{
freq[v[i]-'a']++
}
for i:=0;i<26;i++{
num = num*10 +freq[i]
}
mp[num] = append(mp[num], v)
num = 0
}
for _,v := range mp{
res = append(res, v)
}
return res
}
代码效率:
执行用时:12 ms, 在所有 Go 提交中击败了99.78%的用户
内存消耗:7 MB, 在所有 Go 提交中击败了98.23%的用户
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!