设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; }

ICPC--1207: 字符排列问题,