首页 > 试题广场 >

字母异位词分组

[编程题]字母异位词分组
  • 热度指数:813 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。

字母异位词:由重新排列源单词的字母得到的一个新单词。

数据范围:字符串的个数满足 ,字符串的长度满足 ,字符串中仅包含小写字母
示例1

输入

["eat", "tea", "ate", "but","nowcoder","codernow"]

输出

[["but"],["nowcoder","codernow"],["ate","eat","tea"]]
示例2

输入

[""]

输出

[[""]]
示例3

输入

["a"]

输出

[["a"]]
package main

import "strings"
import "sort"
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param strs string字符串一维数组 
 * @return string字符串二维数组
*/
func groupAnagrams( strs []string ) [][]string {
    cnt:=map[string][]string{}
    for _,s:=range strs{
        arr:=strings.Split(s,"")
        sort.Strings(arr)
        k:=strings.Join(arr,"")
        if _,ok:=cnt[k];!ok{
            cnt[k]=[]string{}
        }
        cnt[k]=append(cnt[k],s)
    }
    ans:=[][]string{}
    for _,v:=range cnt{
        ans=append(ans,v)
    }
    return ans
}

发表于 2023-03-16 13:44:41 回复(0)