Загружаем изображение…

🧩 Задача: Проверка на анаграмму



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

Вариант 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)!

Подписывайтесь на канал 👉 @python_of
Просмотры: 463
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти