Дано: массив строк strs, сгруппируйте строки по спискам в соответствии, являются ли они анаграммами или нет. Вы можете вернуть ответ в любом порядке.
Анаграмма - это слово или фраза, образованная путем перестановки букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз.
Пример 1:
Дано: strs = ["eat", "tea", "tan", "ate", "nat", "bat"].
Ответ: [["bat"],["nat","tan"],["ate","eat","tea"]]
Пример 2:
Дано: strs = [""]
Ответ: [[""]]
Пример 3:
Дано: strs = ["a"]
Ответ: [["a"]]
Ограничения:
1 <= strs.length <= 10^4
0 <= strs[i].length <= 100
strs[i] состоит из строчных английских букв. Решение: с использованием хэш-таблицы class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagrams = defaultdict(list)
for s in strs:
key = "".join(sorted(s))
anagrams[key].append(s)
return list(anagrams.values()) Используем defaultdict. Это подкласс обычного словаря (dict), который позволяет задат