Условие задачи

Дан массив строк strs. Необходимо сгруппировать все анаграммы вместе и вернуть ответ в любом порядке.

Что такое анаграмма?

Анаграмма - это слово или фраза, образованная путем перестановки букв другого слова или фразы, обычно с использованием всех исходных букв ровно один раз.

Примеры

Решение

  1. Создать пустой словарь dict.
  2. Для каждой строки в массиве strs отсортировать буквы и сохранить результат как key.
  3. Если key уже есть в словаре, добавить текущую строку в значение по этому ключу.
  4. Если key отсутствует в словаре, создать новый ключ со значением в виде списка, содержащего только текущую строку.
  5. Преобразовать значения словаря в список и вернуть его.

Объяснение с примером

Возьмем в качестве примера массив строк strs = ["eat", "tea", "tan", "ate", "nat", "bat"]. \

  1. Создаем пустой словарь: dict = {}.
  2. Для строки "eat" отсортируем буквы и получим "aet". Сохраняем "aet" как ключ в словаре с пустым списком значений. dict = {"aet": []}.
  3. Для строки "tea" отсортируем буквы и получим "aet". Такой ключ уже есть в словаре, добавляем "tea" в список значений по этому ключу. dict = {"aet": ["eat", "tea"]}.
  4. Для строки "tan" отсортируем буквы и получим "ant". Такого ключа нет в словаре, создаем новый ключ со значением в виде списка, содержащего только "tan". dict = {"aet": ["eat", "tea"], "ant": ["tan"]}.