【定义】设A和B是两个字符串。将字符串A转换为字符串B所用的最少字符操作数称为字符串A到字符串B的编辑距离。( 这里所说的字符操作包括:删除一个字符,插入一个字符,修改一个字符)
求编辑距离和两个字符串相似度
算法的原理就不做赘述了,记录一下从拿到两个字符串到计算出两个字符串相似度的计算过程。
首先,会有两个字符串这里举例
A串为:GAATTCAGTTA
B串为:GGATCGA
LD具有下列性质:
LD(A,A)=0
LD(A,"")=Len(A)
LD(A,B)=LD(B,A)
0≤LD(A,B)≤Max(Len(A),Len(B))
LD(A,B)=LD(Rev(A),Rev(B))
LD(A+C,B+C)=LD(A,B)
LD(A+B,A+C)=LD(B,C)
LD(A,B)≤LD(A,C)+LD(B,C)
LD(A+C,B)≤LD(A,B)+LD(B,C)
有了这些,然后我们来说一些定义:
A=a1a2……aN,表示A是由a1a2……aN这N个字符组成,Len(A)=N
B=b1b2……bM,表示B是由b1b2……bM这M个字符组成,Len(B)=M
LD(i,j)=LD(a1a2……ai,b1b2……bj),其中0≤i≤N,0≤j≤M
有了这些,不难得到,LD(N,M)=LD(A,B),,,LD(0,0)=0,,,LD(0,j)=j,,,LD(i,0)=i
对于1≤j