Python: Фильтр анаграмм

Python: Функции 1 сообщение
Обновлено: 30 марта, 12:15
207
Студентов
94%
Завершения

Анаграммы — это слова, которые состоят из одинаковых букв. Например:

  • спаниель — апельсин
  • карат — карта — катар
  • топор — ропот — отпор

src/solution.py

Реализуйте функцию filter_anagrams(), которая находит все слова-анаграммы. Функция принимает исходное слово и последовательность (iterable) слов для проверки, а возвращает последовательность анаграмм.

Я использовал в абзаце "слова" только для краткости. Строго говоря, ваша функция должна уметь находить анаграммы любых последовательностей, в том числе списков и кортежей. То есть решение должно быть максимально общим.

list(filter_anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada']))
# ['aabb', 'bbaa']
list(filter_anagrams('racer', ['crazer', 'carer', 'racar', 'caers', 'racer']))
# ['carer', 'racer']
list(filter_anagrams('laser', ['lazing', 'lazy',  'lacer']))
# []
list(filter_anagrams([1, 2], [[2, 1], [2, 2], [1, 2]]))
# [[2, 1], [1, 2]]

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов