设A和B是两个字符串我们要用最少的字符操作次数,将字符串A转换为字符串B这里所说的字符操作共有三种:,今天小编就来聊一聊关于字符串怎么样才能改?接下来我们就一起去研究一下吧!
字符串怎么样才能改
ICPC--1206: 字符串的修改题目描述设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:
\1. 删除一个字符; \2. 插入一个字符; \3. 将一个字符改为另一个字符。 对任给的两个字符串A和B,计算出将字符串A变换为字符串B所用的最少字符操作次数。
输入第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于200。
输出只有一个正整数,为最少字符操作次数。
样例输入
sfdxbqw
gfdgw
4
#include<bits/stdc .h>
using namespace std;
int main(){
int dp[210][210];
char a[210], b[210];
int i, j, len1, len2;
scanf("%s", a);
scanf("%s", b);
len1 = strlen(a);
len2 = strlen(b);
for (i = 0; i <= len1; i )
dp[i][0] = i;
for (i = 0; i <= len2; i )
dp[0][i] = i;
for (i = 1; i <= len1; i ){
for (j = 1; j <= len2; j ){
if (a[i-1] == b[j-1])//相同
dp[i][j] = dp[i - 1][j - 1];
else
dp[i][j] = min(min(dp[i - 1][j] 1, dp[i][j - 1] 1), dp[i - 1][j - 1] 1);
}
}
cout << dp[len1][len2] << endl;
return 0;
}