Расстояние редактирования Левенштейна между двумя строками - это минимально возможное количество вставок, удалений или замен для преобразования одного слова в другое. В этом случае каждая вставка, удаление и замена имеют стоимость 1.
Например, расстояние между
roll
иrolling
равно 3, потому что удаление стоит 1, а нам нужно удалить 3 символа. Расстояние междуtoll
иtall
равно 1, потому что замены стоят 1.
Ваша задача - вычислить разницу редактирования Левенштейна между входной строкой и вашим источником. Это меченый Куайн , поэтому обман quines (например, чтение исходного кода) является не допускается.
правила
Входные данные будут непустыми и будут состоять из ASCII, если ваш источник не содержит не ASCII, и в этом случае входные данные могут включать Unicode. Независимо от этого расстояние Левенштейна будет измеряться в символах, а не в байтах.
Выход - это минимальное расстояние редактирования Левенштейна для входа и вашего источника.
Это код-гольф , поэтому самый короткий ответ, в байтах, выигрывает.
Ответы:
Python 2 + sequtils , 101 байт
источник
Python 2 ,
278258 байтПопробуйте онлайн!
Это просто обычная квинна в Python, смешанная с алгоритмом Левенштейна из этого ответа . Обратите внимание , что он получает
достаточночрезвычайно (спасибо г - ну Xcoder: P) медленно.источник
l(s%s,input())
(не уверен)?JavaScript, 113 байт
Это действительная квинна.
Идея украдена из другого ответа.
источник