Python使用动态规划法计算两个单词之间的距离

2022-03-11 00:00:00 距离 两个 单词
"""
作者:皮蛋编程(https://www.pidancode.com)
创建日期:2022/3/18
修改日期:2022/3/18
功能描述:Python使用动态规划法计算两个单词之间的距离
"""


def word_distance(m, n):
    """动态规划算法,计算单词距离"""

    len_1 = lambda x: len(x) + 1
    c = [[i] for i in range(0, len_1(m))]
    c[0] = [j for j in range(0, len_1(n))]
    for i in range(0, len(m)):
        for j in range(0, len(n)):
            c[i + 1].append(
                min(
                    c[i][j + 1] + 1,  # 插入n[j]
                    c[i + 1][j] + 1,  # 删除m[j]
                    c[i][j] + (0 if m[i] == n[j] else 1)  # 改
                )
            )
    return c[-1][-1]


print(word_distance('pidancode', 'pidancode.com'))
print(word_distance('皮蛋编程', '皮蛋编程网'))

输出结果:
4
1

以上代码在Python3.9环境下运行通过。

相关文章