LeetCodeHot100-49-字母异位词分组

题目

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

1
2
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

1
2
输入: strs = [""]
输出: [[""]]

示例 3:

1
2
输入: strs = ["a"]
输出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
// map存放排序后的String与字母异位词列表
Map<String, List<String>> map = new HashMap<String, List<String>>();
for (String str : strs) {
char[] array = str.toCharArray();
Arrays.sort(array);
String key = new String(array);
// map.getOrDefault(Object key, V defaultValue)
// key - 键
// defaultValue - 当指定的key并不存在映射关系中,则返回的该默认值
List<String> list = map.getOrDefault(key, new ArrayList<String>());
// 将当前的strs加入进去,temp可能空,可能非空
list.add(str);
map.put(key, list);
}
return new ArrayList<List<String>>(map.values());
}
}

LeetCodeHot100-49-字母异位词分组
https://excelius.xyz/leetcodehot100-49-字母异位词分组/
作者
Ther
发布于
2024年8月14日
许可协议