每日一道Leetcode——字母异位词分组(2020.12.14)

题目:
每日一道Leetcode——字母异位词分组(2020.12.14)_第1张图片
我的解法:排序

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> ans = new ArrayList<List<String>>();
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for(String s: strs){
        	// 将字符串转换为字符数组,排序后比较两个数组是否相同
            char[] array = s.toCharArray();
            Arrays.sort(array);
            String str = String.valueOf(array);
            if(map.containsKey(str)){
                map.get(str).add(s);
            }else{
                map.put(str, new ArrayList<String>(){{
                    add(s);
                }});
            }
        }
        for(String str: map.keySet()){
            if(map.get(str)!=null){
                ans.add(map.get(str));
            }
        }
        return ans;
    }
}

每日一道Leetcode——字母异位词分组(2020.12.14)_第2张图片
官方题解:
每日一道Leetcode——字母异位词分组(2020.12.14)_第3张图片
每日一道Leetcode——字母异位词分组(2020.12.14)_第4张图片
附:哈希表的遍历方式
每日一道Leetcode——字母异位词分组(2020.12.14)_第5张图片
每日一道Leetcode——字母异位词分组(2020.12.14)_第6张图片

你可能感兴趣的:(leetcode,hashmap,排序,并查集)