题解 | #计算字符串的编辑距离#

计算字符串的编辑距离

http://www.nowcoder.com/practice/3959837097c7413a961a135d7104c314

"""
dp[i][j]
i-1 为 str2 第 i 个字符
j-1 为 str1 第 j 个字符

例如:
str1 = abc
str2 = abcde
假设始终对str1进行操作
输出为dp[5][3]

添加:
str1 = abc+e
str2 = abcde
即dp[5][3] = dp[4][3] + 1
即dp[i][j] = dp[i-1][j] + 1

删除:
str1 = abc-c
str2 = abcde
即dp[5][3] = dp[5][4] + 1
即dp[i][j] = dp[i][j-1] + 1

替换:
str1 = abc → abe
str2 = abcde
同时去掉e,转换为
str1 = ab
str2 = abcd
即dp[5][3] = dp[4][2] + 1
即dp[i][j] = dp[i-1][j-1] + 1
"""
while True:
    try:
        str1 = input()
        str2 = input()
        m = len(str1)
        n = len(str2)
        dp = [[1] * (m + 1) for i in range(n + 1)]
        for i in range(m + 1):
            dp[0][i] = i
        for j in range(n + 1):
            dp[j][0] = j
        for i in range(1, n + 1):  # i-1为str2第i个字符
            for j in range(1, m + 1):  # j-1为str1第j个字符
                if str1[j - 1] == str2[i - 1]:
                    dp[i][j] = dp[i - 1][j - 1]
                else:
                    a_d_d = dp[i - 1][j] + 1
                    d_e_l = dp[i][j - 1] + 1
                    re_pl_ace = dp[i - 1][j - 1] + 1
                    dp[i][j] = min(a_d_d, d_e_l, re_pl_ace)
        print(dp[n][m])
    except:
        break

全部评论
Line 21应该是“即dp[5][3] = dp[5][2] + 1”吧~
点赞
送花
回复
分享
发布于 2022-04-06 15:09
str1=abcdefgh str2=abc 输出为啥是3?
点赞
送花
回复
分享
发布于 2023-09-04 16:41 陕西
蔚来
校招火热招聘中
官网直投

相关推荐

10 8 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1153452次浏览 17163人参与
# 通信和硬件还有转码的必要吗 #
11265次浏览 101人参与
# 不去互联网可以去金融科技 #
20981次浏览 259人参与
# 和牛牛一起刷题打卡 #
19150次浏览 1637人参与
# 实习与准备秋招该如何平衡 #
203586次浏览 3629人参与
# 大厂无回复,继续等待还是奔赴小厂 #
5075次浏览 33人参与
# OPPO开奖 #
19404次浏览 268人参与
# 通信硬件薪资爆料 #
266127次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2236次浏览 34人参与
# 互联网公司评价 #
97781次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25045次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
455079次浏览 5127人参与
# 国企和大厂硬件兄弟怎么选? #
53936次浏览 1013人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14650次浏览 349人参与
# 硬件人的简历怎么写 #
82304次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19425次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28719次浏览 249人参与
# 学历对求职的影响 #
161304次浏览 1805人参与
# 你收到了团子的OC了吗 #
538963次浏览 6390人参与
# 你已经投递多少份简历了 #
344391次浏览 4963人参与
# 实习生应该准时下班吗 #
97056次浏览 723人参与
# 听劝,我这个简历该怎么改? #
63532次浏览 622人参与
牛客网
牛客企业服务