49. Group Anagrams - LeetCode

Question

49. Group Anagrams

Solution

思路:维护一个map,key是输入数组中的字符串(根据字符排好序)

Java实现:

public List<List<String>> groupAnagrams(String[] strs) {
    Map<String, List<String>> map = new HashMap<>();
    for (String str : strs) {
        String key = getSorted(str);

        List<String> list = map.get(key);
        if (list == null) {
            list = new ArrayList<>();
            map.put(key, list);
        }
        list.add(str);

        // if (!map.containsKey(key)) map.put(key, new ArrayList());
        // map.get(key).add(str);
    }
    return new ArrayList<>(map.values()); // map转list
}

// 返回根据字符排序后的字符串 如:cba返回abc
private String getSorted(String str) {
    char[] arr = str.toCharArray();
    Arrays.sort(arr);
    // return new String(arr);
    return String.valueOf(arr); // 这样写效率更高
}
posted @   okokabcd  阅读(120)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示