Ж
Желтый QA
@yellow_qa4.2K подп.
1.2Kпросмотров
28.5%от подписчиков
18 марта 2026 г.
Score: 1.3K
🧠 Разбор задачи про анаграммы Ошибка была в этой части кода: for c in t: if c not in counts: return False counts[c] -= 1 Функция уменьшает счётчик, но не проверяет, что он не стал отрицательным. Рассмотрим пример: s = "aab" t = "abb" После обработки s словарь будет таким: {'a': 2, 'b': 1} Далее обрабатываем t: 'a' → 1 'b' → 0 'b' → -1 Счётчик b стал -1, но функция всё равно возвращает True. Это неверно — строки не являются анаграммами. --- Правильное исправление Нужно проверить, что счётчик не стал отрицательным: def is_anagram(s, t): if len(s) != len(t): return False counts = {} for c in s: counts[c] = counts.get(c, 0) + 1 for c in t: if c not in counts: return False counts[c] -= 1 if counts[c] < 0: return False return True Такие дефекты коварны тем, что: • код выглядит корректно • простые тесты проходят • ошибка появляется только на некоторых входных данных Такие задачи часто спрашивают на собеседованиях, поэтому хорошо помнить о том, как их решать. #задача
1.2K
просмотров
1135
символов
Да
эмодзи
Нет
медиа

Другие посты @yellow_qa

Все посты канала →
🧠 Разбор задачи про анаграммы Ошибка была в этой части кода — @yellow_qa | PostSniper