LeetCode笔记

yin_bo_ Lv3

字母异位词分组

解题过程
将字符串进行排序,然后将排序后的字符串当作 HashMap 的 Key
然后判断HashMap 中是否有该Key 如果没有则创建一个新的List 如果有Key 则将该字符串存入List 当作Value
最后返回HashMap 的所有 Value 的 List

HashMap有一个很好用的APIcomputeIfAbsent

如果 key 不存在:
创建 new ArrayList<>()
放入 map
如果 key 已存在:
直接返回原来的 List

使用案例map.computeIfAbsent(key , k -> new ArrayList<>());
这里key如果不存在 自动创建一个value是List的 KV键值对

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
HashMap<String,List<String>> map = new HashMap<>();
for(String s:strs){
char[] temp = s.toCharArray();
Arrays.sort(temp);
String sorted = String.valueOf(temp);
map.computeIfAbsent(sorted , key -> new ArrayList<>()).add(s);
}
return new ArrayList<List<String>>(map.values());
}
}
  • 标题: LeetCode笔记
  • 作者: yin_bo_
  • 创建于 : 2026-03-09 22:32:57
  • 更新于 : 2026-03-09 22:52:11
  • 链接: https://www.blog.yinbo.xyz/2026/03/09/算法/LeetCode笔记/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
LeetCode笔记