理论知识(转载的);
文章中就文本比较的其中一个算法(An O(ND) Difference Algorithm and Its Variations)作一简单的介绍,顺便把我这个周末的所得记录一下。
比较两个文本文件的可以抽象成比较两个序列的差异,或者说找出序列A与序列B最大共同共同序列,或者说,把序列A通过一个最小的编辑脚本(插入,删除)“编辑”成序列B。
例:
A(ABCABBA)
B(CBABAC)
由这两个序列可以构成一个编辑图(这个一个很好的想法,让问题简化了不少)
- 最大共同序列(CABA)=A 3A 4A 5A 7=B1B3B4B5
- 最小编辑脚本1D,2D,3IB,6D,7IC