leetcode hot 06

解题思路:需要使用hashmap,定义是(<String,List()>)遍历数组内每一个字符串,转为字符数组后用Arrays.sort()排序,如果hashmap.containsKey没有对应的key,就将排序后的字符数组转回字符串(new String(arr)),以(s_new,new List())的形式put进入hashmap,然后将原来的字符串add如字符列表中,然后下一轮遍历。直到最后所有都放进去再用list.addAll(hashmap.values())的方式返回list。

import java.util.Arrays;
class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> list = new ArrayList<>();
        Map<String,List<String>> hashmap = new HashMap<>();
        for(String str:strs){
            char[] arr = str.toCharArray();
            Arrays.sort(arr);
            String s = new String(arr);
            if(!hashmap.containsKey(s)){
                hashmap.put(s,new ArrayList<String>());
            }
            hashmap.get(s).add(str);
        }
        list.addAll(hashmap.values());
        return list;
    }
}
posted @   kukudev  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示