实现 LevenshteinDistance算法python
以下是实现 Levenshtein Distance算法的 Python 代码:
def LevenshteinDistance(s, t):
m, n = len(s), len(t)
if m < n:
return LevenshteinDistance(t, s)
if n == 0:
return m
previous_row = range(n + 1)
for i, c1 in enumerate(s):
current_row = [i + 1]
for j, c2 in enumerate(t):
insertions = previous_row[j + 1] + 1
deletions = current_row[j] + 1
substitutions = previous_row[j] + (c1 != c2)
current_row.append(min(insertions, deletions, substitutions))
previous_row = current_row
return previous_row[n]
该函数接受两个字符串作为参数,并返回它们之间的 Levenshtein Distance。该算法的基本思想是将一字符串转换为另一字符串所需的最少操作数计算出来,其中每个操作可以是插入、删除或替换字符。
该算法使用动态规划的思想,利用一个二维矩阵来保存中间结果。在每个步骤中,我们计算出从一个字符串到另一个字符串的距离,并将其存储在矩阵中。最后,矩阵的右下角将包含所需的距离。
原文地址: https://www.cveoy.top/t/topic/bKN0 著作权归作者所有。请勿转载和采集!