难度:中等 题目来源:力扣(LeetCode) https://leetcode-cn.com/problems/group-anagrams

    说明:
    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

    示例:
    输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
    输出:
    [
    [“ate”,”eat”,”tea”],
    [“nat”,”tan”],
    [“bat”]
    ]

    解法:

    1. import (
    2. "sort"
    3. "strings"
    4. )
    5. func groupAnagrams(strs []string) [][]string {
    6. if len(strs) == 0 {
    7. return [][]string{}
    8. }
    9. ret, cache := make([][]string, 0, len(strs)), make(map[string][]string, len(strs))
    10. for _, value := range strs {
    11. arr := strings.Split(value, "")
    12. sort.Strings(arr)
    13. key := strings.Join(arr, "")
    14. cache[key] = append(cache[key], value)
    15. }
    16. for _, value := range cache {
    17. ret = append(ret, value)
    18. }
    19. return ret
    20. }