题目
题目链接
题解
import java.util.*;
class Solution {
/**
* 思路:使用哈斯表
* key使用按自然字典排序后的字符串,value保存一个集合,这个集合包含所有和key一样的字母异位词
* 最后返回所有的value
*/
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> table = new HashMap<>(strs.length);
for (String s : strs) {
String sorted = sort4String(s);
List<String> group = table.get(sorted);
if (group == null) {
group = new ArrayList<>();
}
group.add(s);
table.put(sorted, group);
}
return new ArrayList<>(table.values());
}
private String sort4String(String s) {
char[] charArray = s.toCharArray();
Arrays.sort(charArray);
return new String(charArray);
}
}