Step-by-step: anagram checking (part 7eba)
Медленный разбор помогает понять код, а не просто скопировать его.
Задача
Определить, являются ли две строки анаграммами: состоят из одних и тех же букв с одинаковой частотой.
Решение
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. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.
Читайте также:
работа · Когда · Медленный · итерации · частотой · Результат · перестаёт · каждый · происходит · задачи · Разбор · работы · понять · разбор · Определить · словарь · простое · sorted(b.lower · Сложность · изменениями · Проверяем · соответствует · одинаковой · Основной · корректными · одних · помогает · Убеждаемся · каждой
