哈希表解法


解题思路

幻灯片图解:可以使用【方向键(↑↓) 鼠标滚轮滑动 控制】

若观看效果不佳,可以看gif版:

实现代码

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<>();
        for (String str : strs) {
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            String sortedStr = new String(chars);
            List<String> list = map.getOrDefault(sortedStr, new ArrayList<>()); // getOrDefault:根据key获取value,如果没有,返回默认值
            list.add(str);
            map.put(sortedStr, list);
        }
        return new ArrayList<>(map.values());
    }
}