算法-哈希表-异位词分组

在这里插入图片描述
在这里插入图片描述

class Solution {
    
    
    public List<List<String>> groupAnagrams(String[] strs) {
    
    
        List<List<String>> res = new ArrayList<>();
        //创建一个map  key为顺序排列的字符串  value是集合  用来存储异位词组
        Map<String, List<String>> map = new HashMap<>();
        //遍历每一个字符串  给他排好序然后作为key放进map中  value为词组
        for(String str : strs) {
    
    
            //先把字符串变为字符数组
            char[] chars = str.toCharArray();
            //然后对数组排序
            Arrays.sort(chars);
            //将字符数组变为字符串
            String key = new String(chars);
            //获取存放词组的集合
            List<String> list = map.getOrDefault(key, new ArrayList<String>());
            //将str放进集合
            list.add(str);
            //更新集合
            map.put(key, list);
        }
        //遍历集合将集合放进去
        for(String key : map.keySet()) {
    
    
            res.add(map.get(key));
        }
        return res;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_45100361/article/details/113106990