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

Расстояние до опечатки

СложнаяРеализацияГлава 9

#динамическое программирование#таблица#строкиid: ga-typo-distance

Автоисправление ищет в словаре слово, ближайшее к введённому. Близость измеряется редакционным расстоянием — минимальным числом правок, превращающих одну строку в другую. Правка — это вставка, удаление или замена одного символа. Напишите edit_distance(a, b) методом динамического программирования, как в задачах главы.

Примеры

edit_distance("кошка", "кошка")        # 0
edit_distance("кошка", "мошка")        # 1: замена
edit_distance("кот", "крот")           # 1: вставка
edit_distance("алгоритм", "логарифм")  # 4
edit_distance("", "abc")               # 3: три вставки

Ограничения

Решение

def edit_distance(a: str, b: str) -> int:
    """Минимальное число вставок, удалений и замен, превращающих a в b."""
    # ваш код
    raise NotImplementedError

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