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 @ 2025-02-19 19:58  kukudev  阅读(17)  评论(0)    收藏  举报