TGViewer
Python академия Python академия @pythonofff · 7.14K subscribers
Post #3491 1.06K
🧩 Задача: Проверка на анаграмму

Анаграммы, это слова, состоящие из одних и тех же букв, но в разном порядке. Например: ток и кот.
Как проверить, являются ли две строки анаграммами, максимально эффективно?

Вариант 1 (В лоб): Сортировка
Мы можем отсортировать обе строки и сравнить их.


def is_anagram(s1, s2):
return sorted(s1) == sorted(s2)


Это работает, но сложность сортировки - O(N log N) . Можно ли быстрее? 🤔

Вариант 2 (Оптимальный): Подсчет символов
Используем словарь (или Counter), чтобы посчитать, сколько раз встречается каждая буква. Сложность такого решения - O(N) , то есть линейная (самая быстрая).


from collections import Counter

def is_anagram_fast(s1, s2):
return Counter(s1) == Counter(s2)

print(is_anagram_fast("listen", "silent")) # True



💡 Совет: На собеседованиях всегда предлагайте сначала решение с сортировкой (оно проще), а потом удивляйте интервьюера знанием сложности алгоритмов и вариантом с хеш-таблицей (Counter)!

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
  • ❤ 6
  • 👍 3
More from @pythonofff
  1. Sep 24, 2026Анонимные функции Часто функции нужны только один раз, причем короткие. И избыточно создав…
  2. Sep 23, 2026Бесконечные списки Мы уже рассказывали про важность копирования списков. Но именно из-за т…
  3. Sep 21, 2026Заглушки Для создания пустых функций и классов есть сразу два способа соответствующих прав…
  4. Sep 20, 2026Параметры функции *args, **kwargs Думаю, многие хоть раз видели такую запись, сейчас мы уз…
  5. Sep 18, 2026В одну строчку Python гибкий язык и позволяет многое сделать в одну строчку. К примеру, ма…
  6. Sep 16, 2026Распаковка Неудобно каждый раз для вывода объединять строки через join() или тем более как…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →