while True:
#动态规划加初始化问题
#dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1)
#分别表示,删除一个元素和修改一个元素,注意初始值即可
try:
parent = input()
son = input()
if len(parent) < len(son):
parent, son = son, parent
dp = [[0] * (len(son)+1) for _ in range(len(parent)+1)]
for j in range(1,len(dp[0])):
dp[0][j] = j
for i in range(1,len(dp)):
dp[i][0] =i
for i in range(1,len(dp)):
for j in range(1,len(dp[0])):
if parent[i-1] == son[j-1]:
dp[i][j] = dp[i-1][j-1]
else:
dp[i][j] = min(dp[i-1][j]+1 ,dp[i][j-1] +1, dp[i-1][j-1] +1)
print(dp[-1][-1])
except:
break
HW.计算字符串的距离
最新推荐文章于 2022-06-25 22:44:15 发布