Я пишу программное обеспечение для отслеживания изменений, внесенных автором в нескольких изданиях книги.Я уже написал код, который создает набор дельт, описывающих различия между двумя редакциями.
Теперь я ищу алгоритм, чтобы объединить все эти различия внутри строки, чтобы создать «суперструну», содержащую весь вставленный текст иудалены через каждое издание.Затем я хочу разметить строку в HTML с информацией о том, где был добавлен и удален текст.
Таким образом, я могу визуализировать различия между текстами, просто применяя различные атрибуты CSS к документу.
Пример
Если автор изменяет предложение таким образом
-0- --1-- ---2--- ---3---
' ' -> 'cat' -> 'crate' -> 'crane'
Мой код создает эти дельты
0-1) <insert 'cat' at 0>
1-2) <insert 'r' at 1> <insert 'e' at 3>
2-3) <remove from 3 to 4> <insert 'n' at 3>
, которые я хочу обработать, чтобы создатьфайл вроде этого:
<span class="inserted-1">c</span>
<span class="inserted-2">r</span>
<span class="inserted-1">a</span>
<span class="inserted-1 removed-3">t</span>
<span class="inserted-3">n</span>
<span class="inserted-2">e</span>
Вопрос
Какой лучший алгоритм для выполнения этой задачи?Есть имя для этой проблемы?