essay

hot100-字母异位词分组

#算法

hot100——字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

解释:

在 strs 中没有字符串可以通过重新排列来形成 "bat"。
字符串 "nat" 和 "tan" 是字母异位词,因为它们可以重新排列以形成彼此。
字符串 "ate" ,"eat" 和 "tea" 是字母异位词,因为它们可以重新排列以形成彼此。
示例 2:

输入: strs = [""]

输出: [[""]]

示例 3:

输入: strs = ["a"]

输出: [["a"]]

提示:

1 <= strs.length <= 10410^4

0 <= strs[i].length <= 100

strs[i] 仅包含小写字母

import (
    "sort"
    "strings"
)
func groupAnagrams(strs []string) [][]string {
    listMap := make(map[string][]string)
        for _, s := range strs {
            //将数组中的每个字符串分割("eat"=>'e','a','t')
            charSlice := strings.Split(s, "")
            //排序('e','a','t'=> 'a','e','t')
            sort.Strings(charSlice)
            //再把单个字符合并成字符串('e','a','t'=>"eat")
            key := strings.Join(charSlice, "")
            //key值相同的合并
            listMap[key] = append(listMap[key], s)
        }
        //转换为数组
        result := make([][]string, 0, len(listMap))
        for _, s := range listMap {
            result = append(result, s)
        }
	return result
        
}
comments如果有不同意见或者补充,直接留在这里。
contact

在别处继续找到我

如果你想聊技术、设计,或者只是打个招呼。

暂未配置外部链接