Нашли ошибку?

Анаграмма названия

ЛёгкаяДописатьГлава 5

#хеш-таблицы#подсчётid: ga-is-anagram

Команда хочет новое название из тех же букв, что и старое. Допишите is_anagram(a, b): функция проверяет, составлены ли строки из одинакового набора букв. Регистр и пробелы не учитываются. Подсчёт ведите словарём, без сортировки. Пропуски помечены # TODO.

Примеры

is_anagram("Листопад", "Спад толи")  # True
is_anagram("кот", "ток")             # True
is_anagram("кот", "кто-то")          # False

Ограничения

Решение

def letters(text: str) -> str:
    """Строка без пробелов в нижнем регистре."""
    return text.replace(" ", "").lower()


def is_anagram(a: str, b: str) -> bool:
    """True, если a и b состоят из одних и тех же букв (без учёта регистра и пробелов)."""
    counts: dict[str, int] = {}
    for ch in letters(a):
        # TODO: увеличьте счётчик буквы ch
        pass
    for ch in letters(b):
        # TODO: уменьшите счётчик; если буквы нет или счётчик ушёл в минус — верните False
        pass
    # TODO: все ли счётчики вернулись к нулю?
    return True

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 is_anagram.py — тесты те же, результат покажет ✓ / ✗ и итог.