力扣
Python
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
key_str_dict = dict()
for item in strs:
key = ''.join(sorted(item))
if key in key_str_dict:
key_str_dict[key].append(item)
else:
key_str_dict[key] = list([item])
return list(key_str_dict.values())
Java
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<>();
for (String str : strs) {
String hash = getHash(str);
map.computeIfAbsent(hash, k -> new ArrayList<>()).add(str);
}
return new ArrayList<>(map.values());
}
public String getHash(String str) {
char[] array = str.toCharArray();
Arrays.sort(array);
return String.valueOf(array);
}
}