leetcode 49. 字母异位词分组【HashMap】

根据字符串所包含的字母类型对字符串进行分类,可以想到利用HashMap保存一个公有的key,然后将该与该key对应的字符串都放入到该entry的value中。
如何生成一个公有的key?可以提取出每个字符并进行排序,这样只要是含有相同字符的字符串经过处理后都能得到相同的key,从而实现分类。

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        if(strs.length == 0)return new ArrayList<>();
        Map<String, List> map = new HashMap<>();
        for(String str : strs){
            char[] ch = str.toCharArray();
            Arrays.sort(ch);
            String s = String.valueOf(ch);
            if(!map.containsKey(s)){
                map.put(s, new ArrayList<>());
            }
            map.get(s).add(str);
        }
        return new ArrayList(map.values());
    }
}
发布了55 篇原创文章 · 获赞 0 · 访问量 779

猜你喜欢

转载自blog.csdn.net/er_ving/article/details/104873559
今日推荐