La distancia de edición de Levenshtein entre dos cadenas es el número mínimo posible de inserciones, eliminaciones o sustituciones para convertir una palabra en otra palabra. En este caso, cada inserción, eliminación y sustitución tiene un costo de 1.
Por ejemplo, la distancia entre
roll
yrolling
es 3, porque las eliminaciones cuestan 1, y necesitamos eliminar 3 caracteres. La distancia entretoll
ytall
es 1, porque las sustituciones cuestan 1.
Su tarea es calcular la diferencia de edición de Levenshtein entre una cadena de entrada y su fuente. Esto se etiqueta quine , por lo que no se permiten trampas quines (por ejemplo, leer su código fuente) .
Reglas
La entrada no estará vacía y estará compuesta de ASCII, a menos que su fuente contenga no ASCII, en cuyo caso la entrada puede incluir Unicode. En cualquier caso, la distancia de Levenshtein se medirá en caracteres, no en bytes.
La salida es la distancia mínima de edición de Levenshtein de la entrada y su fuente.
Este es el código de golf , por lo que la respuesta más corta, en bytes, gana.
Respuestas:
Python 2 + sequtils , 101 bytes
fuente
Python 2 ,
278258 bytesPruébalo en línea!
Esta es solo la quine habitual en Python, mezclada con el algoritmo Levenshtein de esta respuesta . Tenga en cuenta que se pone
muymuy (gracias al Sr. Xcoder: P) lento.fuente
l(s%s,input())
(no estoy seguro)?JavaScript, 113 bytes
Esta es una quine válida .
Idea robada de otra respuesta.
fuente