字母异位词分组
2026年3月7日小于 1 分钟
字母异位词分组
使用到的方法
String类中的方法:
toCharArray(): 将字符串转换为字符数组。
Arrays类中的方法:
sort(): 对数组进行排序。
Map接口中的方法:
getOrDefault(): 返回指定键映射到的值,如果不存在则返回默认值。
解题思路
- 使用一个
HashMap来存储排序后的字符串作为 键,原始字符串列表 作为值。 - 对于每个字符串,先将其转换为字符数组并排序,然后将排序后的字符串作为 键,原始字符串添加到对应的 值列表 中。
- 最后返回
HashMap中的 所有值列表 。
代码实现
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String,List<String>> map = new HashMap<>();
for(String str : strs){
char[] array = str.toCharArray();
Arrays.sort(array);
String key = new String(array);
// 下面getOrDefault是,如果有key这个键,则取键的值,反之取第二个值
List<String> list = map.getOrDefault(key,new ArrayList<String>());
list.add(str);
map.put(key,list);
}
return new ArrayList<List<String>>(map.values());
}
}