Разложим решение на шаги и объясним, что происходит на каждом из них.
Задача
Определить, являются ли две строки анаграммами: состоят из одних и тех же букв с одинаковой частотой.
Решение
def are_anagrams(a: str, b: str) -> bool:
return sorted(a.lower()) == sorted(b.lower())
print(are_anagrams("listen", "silent"))
Как это работает
Анаграммы дают одинаковые отсортированные последовательности букв. Сортировка — простое и наглядное решение; словарь частот дал бы ту же проверку без сортировки.
Пример работы
True
Сложность
O(n log n) из-за сортировки, O(n) по памяти.
Разбор по шагам
- Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
- Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
- Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.
Читайте также:
Результат · частотой · Определить · строки · перестаёт · простое · приходит · одних · из-за · доработка · понятен · переменных · памяти · последовательности · Основной · крайние · объясним · Сложность · Когда · Пример · Разложим · Проверяем · соответствует · изменениями · одинаковые · отсортированные · работа · Входные
Comments
Join the discussionNo comments yet. Be the first to comment.