def min_edit_dis(self, s1, s2):
dis = [ [ 0 for i in range(len(s2) + 1) ] for j in range(len(s1) + 1) ]
for i in range(1, len(s1) + 1):
dis[i][0] = i
for j in range(1, len(s2) + 1):
dis[0][j] = j
for i in range(1, len(s1) + 1):
for j in range(1, len(s2) + 1):
delta = 0
if s1[i - 1] != s2[j - 1]:
delta = 1
if dis[i][j - 1] < dis[i - 1][j]:
dis[i][j] = dis[i][j - 1] + 1
else:
dis[i][j] = dis[i - 1][j] + 1
if dis[i][j] > dis[i-1][j-1] + delta:
dis[i][j] = dis[i-1][j-1] + delta
return dis[len(s1)][len(s2)]
最短编辑距离
最新推荐文章于 2024-07-19 20:32:24 发布