A distância de edição de Levenshtein entre duas cadeias é o número mínimo possível de inserções, exclusões ou substituições para converter uma palavra em outra palavra. Nesse caso, cada inserção, exclusão e substituição tem um custo de 1.
Por exemplo, a distância entre
roll
erolling
é 3, porque as exclusões custam 1 e precisamos excluir 3 caracteres. A distância entretoll
etall
é 1, porque as substituições custam 1.
Sua tarefa é calcular a diferença de edição de Levenshtein entre uma sequência de entrada e sua fonte. Isso é marcado como quine , portanto, trapacear quines (por exemplo, ler seu código-fonte) não é permitido.
Regras
A entrada não ficará vazia e será composta de ASCII, a menos que sua fonte contenha não-ASCII; nesse caso, a entrada pode incluir Unicode. Independentemente, a distância de Levenshtein será medida em caracteres, não em bytes.
A saída é a distância mínima de edição de Levenshtein da entrada e da sua fonte.
Isso é código-golfe , então a resposta mais curta, em bytes, vence.
Respostas:
Python 2 + sequtils , 101 bytes
fonte
Python 2 ,
278258 bytesExperimente online!
Esta é apenas a solução usual em Python, misturada com o algoritmo de Levenshtein desta resposta . Note-se que ele fica
bastanteextremamente (graças ao Sr. Xcoder: P) lento.fonte
l(s%s,input())
(não tenho certeza)?JavaScript, 113 bytes
Esta é uma solução válida .
Idéia roubada de outra resposta.
fonte