49. 字母异位词分组(高频题)


49. 字母异位词分组

解题思路

本题没有啥通用的套路,只能直接去想咋做了。
因为异位词排序后是一样的,所以只需要维护一个map,key为排序后的字符串,val为一个list集合,其中包含着原本的字符串。具体分析如下
在这里插入图片描述

代码

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for (String str : strs) {
            char[] array = str.toCharArray();
            Arrays.sort(array);
            String key = new String(array);
            //还没出现过就要新建一个list来保存异位词
            if(!map.containsKey(key)){
                map.put(key,new ArrayList<String>());
            }
             //把原本的字符串存放到对应的list中
             map.get(key).add(str);
        }
        return new ArrayList<List<String>>(map.values());
    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录