LeetCode热题100——字母异位词分组(2)

发布时间:2024年01月25日

题目链接:https://leetcode.cn/problems/group-anagrams/description/?envType=study-plan-v2&envId=top-100-liked

哈希、排序

排序后得到的字符串是相同的,作为哈希表的键

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
    	//创建一个哈希表h,键值分别对应排序好的字符串和分组列表
        Map<String, List<String>> h = new HashMap<String, List<String>>();
        //遍历字符串数组strs
        for(String str : strs){
        	//将字符串str转化为字符数组a
            char[] a = str.toCharArray();
            //将字符数组a排序
            Arrays.sort(a);
            //将排序好的字符数组a存储到字符串key中
            String key = new String(a);
            //从哈希表h中获取键为key的分组列表,如果不存在就创建一个空列表
            List<String> list = h.getOrDefault(key, new ArrayList<String>());
            //将字符串str添加到分组列表中
            list.add(str);
            //将字符串和更新后的分组列表重新放回哈希表h中
            h.put(key, list);
        }
        return new ArrayList<List<String>>(h.values());
    }
}

还剩98题!

文章来源:https://blog.csdn.net/qq_62734493/article/details/135833696
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。