1276:【例9.20】编辑距离

简介: 1276:【例9.20】编辑距离

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:

1、删除一个字符;

2、插入一个字符;

3、将一个字符改为另一个字符。

对任意的两个字符串A和B,计算出将字符串A变换为字符串B所用的最少字符操作次数。

【输入】

第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。

【输出】

只有一个正整数,为最少字符操作次数。

【输入样例】

sfdqxbw

gfdgw

【输出样例】

4

1. #include <iostream>
2. #include <cstdio>
3. #include <algorithm>
4. #include <string>
5. using namespace std;
6. string a,b;
7. int f[2005][2005];
8. int main()
9. {
10.   cin>>a>>b;
11.   int la=a.size();
12.   int lb=b.size();
13.   for(int i=1;i<=la;i++) f[i][0]=i;
14.   for(int i=1;i<=lb;i++) f[0][i]=i;
15.   for(int i=1;i<=la;i++)
16.     for(int j=1;j<=lb;j++){
17.       if(a[i-1]==b[j-1]) f[i][j]=f[i-1][j-1];
18.       else f[i][j]=min(f[i-1][j-1],min(f[i][j-1],f[i-1][j]))+1;
19.     }
20.   printf("%d\n",f[la][lb]);
21.   return 0;
22. }


相关文章
|
3天前
leetcode-72:编辑距离
leetcode-72:编辑距离
25 0
|
3天前
|
索引
编辑距离矩阵
编辑距离矩阵
37 0
|
3天前
|
存储 算法
力扣318 最大单词长度乘积
力扣318 最大单词长度乘积
|
3天前
|
算法 程序员 索引
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
70 0
|
11月前
|
存储
Leecoe 72. 编辑距离
Leecoe 72. 编辑距离
24 0
|
11月前
深入理解动态规划算法 | 最长公共子序列LCS
深入理解动态规划算法 | 最长公共子序列LCS
83 0
|
12月前
|
算法
1304 字符串的相似度 后缀数组
1304 字符串的相似度 后缀数组
49 0
|
算法 C++
【动态规划篇】最少分割回文 && 编辑距离 && 不同的子序列
【动态规划篇】最少分割回文 && 编辑距离 && 不同的子序列
【动态规划篇】最少分割回文 && 编辑距离 && 不同的子序列