欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 每日OJ_牛客HJ52计算字符串的编辑距离(dp)

每日OJ_牛客HJ52计算字符串的编辑距离(dp)

2024/10/24 14:27:29 来源:https://blog.csdn.net/GRrtx/article/details/141230569  浏览:    关键词:每日OJ_牛客HJ52计算字符串的编辑距离(dp)

目录

牛客HJ52计算字符串的编辑距离(dp)

解析代码


牛客HJ52计算字符串的编辑距离(dp)

计算字符串的编辑距离_牛客题霸_牛客网


解析代码

        计算字符串的编辑距离(也称为Levenshtein距离)是一个经典的动态规划问题。编辑距离是指将一个字符串转换成另一个字符串所需的最少编辑操作次数,其中编辑操作包括插入、删除和替换一个字符。子状态:word1的前1,2,3,...m个字符转换成word2的前1,2,3,...n 个字符需要的编辑距离。

#include <iostream>
#include <string>
#include <vector>
using namespace std;int main()
{string str1 = "", str2 = "";cin >> str1 >> str2;int n1 = str1.size(), n2 = str2.size();// if(n1 == 0 || n2 == 0)// {//     cout << max(n1, n2);//     return 0;// }vector<vector<int>> dp(n1 + 1, vector<int>(n2 + 1));for(int i = 1; i <= n1; ++i){dp[i][0] = i;}for(int j = 1; j <= n2; ++j){dp[0][j] = j;}for(int i = 1; i <= n1; ++i){for(int j = 1; j <= n2; ++j){if(str1[i - 1] == str2[j - 1])dp[i][j] = dp[i - 1][j - 1];elsedp[i][j] = 1 + min(dp[i - 1][j - 1], min(dp[i - 1][j], dp[i][j - 1]));}}cout << dp[n1][n2] << endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com