实现
用leva,b(i,j)lev_{a,b}(i,j)来表示a和b的Leveinshtein距离(i和j分别代表a和b的长度),则:
当min(i,j)=0时,leva,b(i,j)=max(i,j...,leva,b(i,j)=leva,b(i−1,j−1),比如xxcz和xyz的距离=xxc和xy的距离当a_i=b_j时,lev_{a,b}(i,j)=lev_{a,b}(i-1,j-1),比如xxcz...全矩阵
以xxc和xyz为例,建立一个矩阵,通过矩阵记录计算好的距离:
?...当min(i,j)=0时,leva,b(i,j)=max(i,j)当min(i,j)=0时,lev_{a,b}(i,j)=max(i,j),根据此初始化矩阵的第一行和第一列:
?...,计算当前格子时,只需要左、上、左上的值,左面的值可以直接得到,上面的值是当前格子修改前的旧值,也可以直接得到,左上角的值是左面格子修改前的旧值,需要暂存,这时空间复杂度为O(n)O(n)。