#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 1010; int dp[N][N]; char a[N], b[N]; int n, m; int get_min(int x, int y, int z) { return min(min(x, y), z); } int main() { while(cin >> n) { scanf("%s", a+1); scanf("%d%s", &m, b+1); for(int i = 0; i <= n; i++) { dp[i][0] = i; } for(int i = 0; i <= m; i++) { dp[0][i] = i; } for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { if(a[i] == b[j]) { dp[i][j] = dp[i-1][j-1]; } else dp[i][j] = min(min(dp[i-1][j], dp[i][j-1]), dp[i-1][j-1]) + 1; } } cout << dp[n][m] << endl; } return 0; }
[算法] poj 3356 字符串的距离 AGTC
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
AGTC (P3356)
状态 dp[i][j]代表字符串前i个和j个的最小操作数。注意边界条件g namespace std;//freopen("C://i.txt","r",stdin);#
integer string input output c -
字符串的距离
题长度,那么我
字符串 bc #include -
字符串编辑距离
举例如下: j = 0 f a i l
字符串 子串 编辑距离