字符串最小变换次数问题(已经找到原因是第三方库不能用的原因)

给定两个字符串,已知可以使用三种方式进行变换
1. 插入一个字符
2. 删除一个字符
3. 更改一个字符
请设计一个算法,找到两个字符串之间的经历几次最小变换,可以字符串1转换成字符串2
比如输入:
hello
helle
输出:
1
import numpy as np
s=input()
b=input()
n=len(s)
m=len(b)
a = np.zeros((n + 1, m + 1), dtype=int)
for i in range(1, n + 1):
    a[i][0] = i
for i in range(1, m + 1):
    a[0][i] = i
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if s[i - 1] == b[j - 1]:
            a[i][j] = a[i - 1][j - 1]
        else:
            a[i][j] = min([a[i - 1][j - 1], a[i][j - 1], a[i - 1][j]]) + 1
print(a[n][m])


全部评论
牛客吗? numpy作为三方库能不能导入有没有测试过
1 回复 分享
发布于 2020-04-12 06:59
leetcode72
1 回复 分享
发布于 2020-04-12 03:16
leetcode有原题,二维dp问题,你可以去leetcode看看题解
1 回复 分享
发布于 2020-04-12 01:16
s=input() b=input() n=len(s) m=len(b) print(n) print(m) a = [[0]*(m+1) for i in range(n+1)] for i in range(1, n + 1):     a[i][0] = i for i in range(1, m + 1):     a[0][i] = i for i in range(1, n + 1):     for j in range(1, m + 1):         if s[i - 1] == b[j - 1]:             a[i][j] = a[i - 1][j - 1]         else:             a[i][j] = min([a[i - 1][j - 1], a[i][j - 1], a[i - 1][j]]) + 1 print(a[n][m]) 新代码可以通过
点赞 回复 分享
发布于 2020-04-12 10:56
对对对,我本地也没有问题,Java写的
点赞 回复 分享
发布于 2020-04-11 23:57
这道题我做过,😂😂美团一面手撕算法,当时没做完,后面提交上去也是数组越界
点赞 回复 分享
发布于 2020-04-11 23:44

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务