如果我们有三个字符串a,b,c并且我们知道(或已经计算过)edit_distance(a,b)和edit_distance(b,c),我们是否可以有效地计算edit_distance(a,c)而无需实际比较a和角
* edit_distance(a,b)=将a转换为b所需的字符插入,删除和替换次数。*
答案 0 :(得分:5)
一般来说,没有。例如,参加
此处,edit_distance(a,b)= 1且edit_distance(b,c)= 1.此外,edit_distance(a,c)= 1.
但是,我们也可以
这里,edit_distance(a,b)= 1,edit_distance(b,c)= 1,但是edit_distance(a,c)= 2.因此,没有办法纯粹使用a和b的编辑距离b和c来计算a和c的编辑距离。
然而,我们做知道edit_distance(a,c)≤edit_distance(a,b)+ edit_distance(b,c),因为你总是可以按顺序应用转换来转换为C。更一般地说,编辑距离形成一个离散的distance metric,它构成了BK-tree data structure的基础。
希望这有帮助!