Python
注意:一些基本语法需要掌握!!!
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
resDict = {}
for tmpStr in strs:
key = ''.join(sorted(tmpStr)) # sorted(tmpStr) 相当于直接对str按照字符排序
if key in resDict:
resDict[key].append(tmpStr)
else:
resDict[key] = [tmpStr] # list([tmpStr])也可
return list(resDict.values()) # 外层必须加list()
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);
}
}
1432

被折叠的 条评论
为什么被折叠?



