Odległość edycji Levenshteina między dwoma ciągami to minimalna możliwa liczba wstawek, usunięć lub podstawień w celu konwersji jednego słowa na inne. W takim przypadku każde wstawienie, usunięcie i zastąpienie kosztuje 1.
Na przykład odległość między
roll
irolling
wynosi 3, ponieważ usunięcie kosztuje 1, a my musimy usunąć 3 znaki. Odległość międzytoll
itall
wynosi 1, ponieważ zamiana kosztuje 1.
Twoim zadaniem jest obliczenie różnicy edycji Levenshteina między łańcuchem wejściowym a źródłem. To jest znakowany Quine , więc oszukiwanie quines (na przykład czytanie kodu źródłowego) są nie dozwolone.
Zasady
Dane wejściowe będą niepuste i będą się składały z ASCII, chyba że źródło zawiera inne niż ASCII, w którym to przypadku dane wejściowe mogą zawierać Unicode. Niezależnie od tego odległość Levenshteina będzie mierzona w znakach, a nie w bajtach.
Dane wyjściowe to minimalna odległość edycji Levenshteina dla wejścia i źródła.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Odpowiedzi:
Python 2 + sequtils , 101 bajtów
źródło
Python 2 ,
278258 bajtówWypróbuj online!
Jest to zwykła quine w Pythonie, zmieszana z algorytmem Levenshtein z tej odpowiedzi . Zauważ, że robi się
bardzoekstremalnie (dzięki Mr. Xcoder: P) spowolnienie.źródło
l(s%s,input())
(nie jestem pewien)?JavaScript, 113 bajtów
To jest poprawny quine.
Pomysł skradziony z innej odpowiedzi.
źródło