Stack Overflow文本差异

时间:2014-06-05 17:34:10

标签: algorithm diff

当我去(例如)评论部分时, 我看到这些格式精美的文字差异:

text diff

或合并后的一个:

combined text diff

现在,这到底是怎么回事?我很想把它包含在我的网站上,但我无法弄清楚算法。这是在某处记录的吗? 是否有一个开源实现,最好在PHP

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

根据您发布的图片和我自己的图片(尽管经验不多),网站似乎使用了最长公共子序列算法的修改。这就解释了为什么它从未显示出重新排列/改组的话语。

第一个修改是,不是将字母表视为原子单位,而是将单词视为原子单位。 (还有标点符号)

其次,算法相对天真,它指出你划掉了#34; work"当你真正插入一个到那里。它似乎只是标记任何类型的不连续性(插入,删除,修改)并跨越一个词或整个停止部分。

第三,第二个列表中不是第一个列表的一部分的所有内容都标记为绿色。

似乎相对容易实现。查看一些关于动态编程的教程。