49. 字母异位词分组 leetcode-hot100

65 阅读1分钟

image.png

方法:排序 image.png

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        //创建HashMap
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        //字符串遍历字符串数组
        for (String str : strs) {
            //将当前字符串拆成字符数组
            char[] array = str.toCharArray();
            //对字符数组进行排序,所有字母异位词排序结果相同
            Arrays.sort(array);
            //将排序完的字符串作为异位词的key
            String key = new String(array);
            //getOrDefault:存在key对应的value则返回,否则给新值
            //保存至对应的异位词组
            List<String> list = map.getOrDefault(key, new ArrayList<String>());
            list.add(str);
            //更新hashmap
            map.put(key, list);
        }
        return new ArrayList<List<String>>(map.values());
    }
}