集合
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
HashMap<String, List<String>> map = new HashMap<>();
for (String str : strs){
/**
* 将每个字符串转化为字符数组,再排序转换为有序的字符串
*/
char[] chars = str.toCharArray();
Arrays.sort(chars);
String orderS = new String(chars);
/**
* map中的键是每一种有序的字符串,值是满足条件的字符串组成的list
* 每次遍历时都要添加新的字符串,然后更新键值
*/
List<String> list = map.getOrDefault(orderS, new ArrayList<String>());
list.add(str);
map.put(orderS, list);
}
return new ArrayList<>(map.values());
}
}
/**
* 时间复杂度 O(nlogn)
* 空间复杂度 O(n)
*/
https://leetcode-cn.com/problems/group-anagrams/