给定 2 个字符串s
和t
. 我需要找到s
编辑距离(Levenshtein 距离)中的每个子字符串到t
. 实际上,我需要知道从i
positions
开始的所有子字符串的最小编辑距离是多少i
。
例如:
t = "ab"
s = "sdabcb"
我需要得到类似的东西:
{2,1,0,2,2}
解释:
1st position:
distance("ab", "sd") = 4 ( 2*subst )
distance("ab", "sda") = 3( 2*delete + insert )
distance("ab", "sdab") = 2 ( 2 * delete)
distance("ab", "sdabc") = 3 ( 3 * delete)
distance("ab", "sdabcb") = 4 ( 4 * delete)
So, minimum is 2
2nd position:
distance("ab", "da") = 2 (delete + insert)
distance("ab", "dab") = 1 (delete)
distance("ab", "dabc") = 2 (2*delete)
....
So, minimum is 1
3th position:
distance("ab", "ab") = 0
...
minimum is 0
等等。
当然,我可以使用蛮力算法来解决这个任务。但是有更快的算法吗?
感谢帮助。