题目描述:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
编码实现:
public List<List<String>> groupAnagrams(String[] strs) {
if (null == strs || strs.length == 0){
return new ArrayList<>();
}
Map<String, List<String>> map = new HashMap<>();
for (String string : strs) {
char[] ch = new char[26];
for (char c : string.toCharArray()){
ch[c - 'a']++;
}
String keyStr = String.valueOf(ch);
if (!map.containsKey(keyStr)){
map.put(keyStr, new ArrayList<>());
}
map.get(keyStr).add(string);
}
return new ArrayList<>(map.values());
}