注:这篇博客讨论的算法是怎样求解两个字符串的最小编辑距离,其目的是为了下一篇的虚拟DOM,来做一个预备工作,这里主要讨论的用 LevenshteinDistance ,主要通过的是动态规划。
什么是最小编辑距离:
给定一个长度为m和n的两个字符串,设有以下几种操作:替换(R),插入(I)和删除(D)且都是相同的操作。寻找到转换一个字符串插入到另一个需要修改的最小(操作)数量。这个数量就可以被视为最小编辑距离。如:acd与ace的 EditionDistance 距离为1,abc与cab的距离为1。
递归实现:
我们来讨论一下情况:
当 A[i] 与 B[i] 相等时,我们只需要比较其 A[i+1...len] 与 B[i+1...len] ;
当 A[i] 与 B[i] 不等时,我们可以做如下操作:
1. 在 A[i+1] 增加一个字符,从而比较 A[i.