Supongamos que tengo dos cuerdas. Llamarlos y . Ninguna cadena tiene caracteres repetidos.
¿Cómo puedo encontrar la secuencia más corta de operación de inserción, movimiento y eliminación que convierte en , donde:
insert(char, offset)
insertachar
en el dadooffset
en la cadenamove(from_offset, to_offset)
mueve el personaje actualmente en desplazamientofrom_offset
a una nueva posición para que tenga desplazamientoto_offset
delete(offset)
elimina el personaje enoffset
Ejemplo de aplicación: realiza una consulta a la base de datos y muestra los resultados en su sitio web. Más tarde, vuelve a ejecutar la consulta de la base de datos y descubre que los resultados han cambiado. Desea cambiar lo que está en la página para que coincida con lo que está actualmente en la base de datos utilizando la cantidad mínima de operaciones DOM. Hay dos razones por las que desea la secuencia de operaciones más corta. Primero, la eficiencia. Cuando solo cambian unos pocos registros, desea asegurarse de que realiza operaciones lugar de DOM, ya que son caras. En segundo lugar, la corrección. Si un elemento se movió de una posición a otra, desea mover los nodos DOM asociados en una sola operación, sin destruirlos ni recrearlos. De lo contrario, perderá el estado de enfoque, el contenido de los elementos, etc.<input>
move
operaciones, por lo que es posible que tenga que variar al interpretar la partitura.