022_字符异位词分组
知识点:哈希表
LeetCode第四十九题:
另一个解法是将每个字符串按字典序进行排序,然后再结合哈希表进行操作,不过那样的时间复杂度为O(NKlogK),N为字符串个数,K为字符串的长度,KlogK为字符串的排序时间。
语言:GoLang
// 时间复杂度:O(kn),k为最长的字符串的长度,n为总的字符串的数量
func groupAnagrams(strs []string) [][]string {
length := len(strs)
mapper := map[[26]int][]string{}
for i := 0; i < length; i++ {
feature := [26]int{}
for j := 0; j < len(strs[i]); j++ {
feature[strs[i][j] - 'a']++
}
mapper[feature] = append(mapper[feature], strs[i])
}
result := [][]string{}
for _, v := range mapper {
result = append(result, v)
}
return result
}

浙公网安备 33010602011771号