leetcode--49字母异位词分组

49字母异位词分组

leetcode--49字母异位词分组_第1张图片

解题思路

1.将不同的字符串转换为字符数组并按照字母顺序进行排序
2.异位词排序后的结果相同,故可以作为哈希表的key值
3.将字母异位词组成的集合作为哈希表的value值

代码

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        if (strs == null || strs.length == 0){
            return new ArrayList();
        }

        HashMap<String, List> hashMap = new HashMap<>();

        for (String str : strs) {
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            String s = String.valueOf(chars);
            if (!hashMap.containsKey(s)){
                hashMap.put(s,new ArrayList());
            }
            hashMap.get(s).add(str);
        }

        return new ArrayList(hashMap.values());

    }
}

参考

https://leetcode.cn/problems/group-anagrams/solution/zi-mu-yi-wei-fen-zu-ha-xi-biao-zhu-bu-zh-gf9q/

你可能感兴趣的:(数据结构与算法,java学习,leetcode,哈希算法,java)