Проверка анаграмм Python
Проверьте, являются ли две строки анаграммами, сравнив их составы символов в Python.
Обзор
Две строки являются анаграммами, если они содержат одни и те же символы с одинаковой частотой, но расположены в разном порядке (например, «слушай» и «молчи»).
Элегантный способ проверки наличия анаграмм — очистить строки (удалить пробелы и нижний регистр), отсортировать их символы и проверить, идентичны ли отсортированные списки.
Этот подход к сортировке выполняется за время O(k log k), где k — длина строки, оптимальная для проверки коротких текстов.
Код и вывод выполнения
Проверка пар слов на статус анаграммы путем сортировки букв.
anagram.py
Попробуйте в редактореdef is_anagram(str1, str2):
s1 = sorted(str1.lower().replace(" ", ""))
s2 = sorted(str2.lower().replace(" ", ""))
return s1 == s2
word1, word2 = "listen", "silent"
print(f"Are '{word1}' and '{word2}' anagrams? {is_anagram(word1, word2)}")
word3, word4 = "hello", "world"
print(f"Are '{word3}' and '{word4}' anagrams? {is_anagram(word3, word4)}")Терминальный выход
Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? FalseПошаговая реализация
- Механизмы анализа текста и лингвистического сравнения
- Разработка струнных головоломок и системы валидации
- Задачи по кодированию технического интервью
Часто задаваемые вопросы
Есть ли способ решить эту проблему за линейное время O (n)?
Да! Вместо сортировки вы можете подсчитывать частоты букв, используя хэш-карту или Python Collections.Counter, и сравнивать полученные карты частот.