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

计算字符串的编辑距离

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

// HJ52-3 计算字符串的编辑距离.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include<iostream>
#include<bits/stdc++.h>

using namespace std;

int dp[1001][1001];

int main()
{
	string s1, s2;
	while (cin >> s1 >> s2)
	{
		s1 = ' ' + s1;
		s2 = ' ' + s2;
		int l1 = s1.size(), l2 = s2.size();
		for (int i = 0; i < l1; i++)
		{
			dp[i][0] = i;
		}
		for (int j = 0; j < l2; j++)
		{
			dp[0][j] = j;
		}
		for (int i = 1; i < l1; i++)
		{
			for (int j = 1; j < l2; j++)
			{
				dp[i][j] = min(dp[i][j - 1] + 1, dp[i - 1][j] + 1);
				if (s1[i] != s2[j])
				{
					dp[i][j] = min(dp[i][j], dp[i - 1][j - 1]+1);
				}
				else
				{
					dp[i][j] = min(dp[i][j], dp[i - 1][j - 1]);
				}
			}
		}
		cout << dp[l1 - 1][l2 - 1];
	}
	return 0;
}

全部评论

相关推荐

09-22 22:22
中山大学 Java
双尔:赌对了,不用经历秋招的炼狱真的太好了,羡慕了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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