题目链接:https://leetcode.cn/problems/group-anagrams/description/?envType=study-plan-v2&envId=top-100-liked
排序后得到的字符串是相同的,作为哈希表的键
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
//创建一个哈希表h,键值分别对应排序好的字符串和分组列表
Map<String, List<String>> h = new HashMap<String, List<String>>();
//遍历字符串数组strs
for(String str : strs){
//将字符串str转化为字符数组a
char[] a = str.toCharArray();
//将字符数组a排序
Arrays.sort(a);
//将排序好的字符数组a存储到字符串key中
String key = new String(a);
//从哈希表h中获取键为key的分组列表,如果不存在就创建一个空列表
List<String> list = h.getOrDefault(key, new ArrayList<String>());
//将字符串str添加到分组列表中
list.add(str);
//将字符串和更新后的分组列表重新放回哈希表h中
h.put(key, list);
}
return new ArrayList<List<String>>(h.values());
}
}
还剩98题!