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

计算字符串的编辑距离

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

#include <iostream>
using namespace std;
const int N = 1e3 + 5;
string s1;
string s2;
int p[N][N];
int dp[N][N]; //dp[i][j]:s1前i个字母到s2前j个字母的编辑距离
int dfs(int x, int y) {
    int res = 1e9;
    if (dp[x][y]) return dp[x][y];
    if (x == 0) return dp[x][y] = y;
    if (y == 0) return dp[x][y] = x;
    if (s1[x] == s2[y]) res = min(res, dfs(x - 1, y - 1)); //不动
    else res = min(res, dfs(x - 1, y - 1) + 1); //改
    res = min(res, dfs(x - 1, y) + 1); //删
    res = min(res, dfs(x, y - 1) + 1); //增
    return dp[x][y] = res;
}
int main() {
    cin >> s1 >> s2;
    s1 = ' ' + s1;
    s2 = ' ' + s2;
    cout << dfs(s1.size() - 1, s2.size() - 1) << endl;
}

全部评论

相关推荐

02-15 14:18
已编辑
江西工程学院 Java
董春花_:个人建议1. 排版极简化,别花花绿绿的。2.专业技能不必要介绍那么详细。什么熟练熟悉精通没必要。按照语言,工具framework等等这种划分一下就行。3.项目介绍的太泛泛了,非常空洞。你新增了什么功能?修改了什么功能?怎么做的? 4.再做个项目放上去吧。 学历不行就只能拼能力了,先有个班上,然后跳。干就完了
Java求职圈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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