51nod 动态数组基础题 4
来源:互联网 发布:jmeter linux 安装 编辑:程序博客网 时间:2024/06/08 06:52
点击打开链接
给定两个字符串S和T,对于T我们允许三种操作:
(1) 在任意位置添加任意字符
(2) 删除存在的任意字符
(3) 修改任意字符
问最少操作多少次可以把字符串T变成S?
例如: S= “ABCF” T = “DBFG”
那么我们可以
(1) 把D改为A
(2) 删掉G
(3) 加入C
(2) 删掉G
(3) 加入C
所以答案是3。
输入
第1行:字符串a(a的长度 <= 1000)。第2行:字符串b(b的长度 <= 1000)。
输出
输出a和b的编辑距离
输入示例
kittensitting
输出示例
3
#include<cstdio>#include<cstring>#include<string>#include<stack>#include<algorithm>using namespace std; char s1[1010],s2[1010]; int dp[1010][1010]; int main() { int l1,l2,i,j; scanf("%s%s",s1,s2); l1=strlen(s1); l2=strlen(s2); for(i=0;i<=l1;i++) dp[i][0]=i; for(i=0;i<=l2;i++) dp[0][i]=i; for(i=1;i<=l1;i++) { for(j=1;j<=l2;j++){ if(s1[i-1]==s2[j-1]) dp[i][j]=min(dp[i-1][j-1],min(dp[i-1][j]+1,dp[i][j-1]+1)); else dp[i][j]=min(dp[i-1][j-1]+1,min(dp[i-1][j]+1,dp[i][j-1]+1)); } } printf("%d\n",dp[l1][l2]); return 0; }
阅读全文
0 0
- 51nod 动态数组基础题 4
- 51nod 动态规划基础
- 51nod 动态数组基础教程 5
- 51 nod 动态规划基础篇 3
- 51nod 动态规划基础篇 6
- 51 nod 动态规划 基础篇 1
- 51nod 动态规划 基础篇 2
- 51nod 基础题小结
- 51nod 基础题-1459
- 51nod 1270 数组的最大代价 动态规划
- (51nod)动态规划基础篇练习题
- 51nod 1270 数组的最大代价(基础dp)
- 51NOD--动态规划
- 51nod 基础题(2)
- 51nod--基础题大数加法
- 51nod 基础题 1005 大数加法
- 51nod 1264 基础
- 51nod 1051【基础】
- 快速实现自定义Tab复用
- PETABASE 中的 overwrite 和 postgresql GPDB MYSQL中的truncate
- AM437x 时钟结构
- CENTOS7 安装配置 NFS
- MapReduce入门理解
- 51nod 动态数组基础题 4
- 盈谷网络发布医真云:用人工智能开启医疗应用新场景
- hdu 1711 Number Sequence
- Matrix
- Java中的递归详解及实现方法
- laravel笔记-事件
- 挖坑待填
- read a image and show it's channel
- 接口类(interface),实现类(class),继承(extends),实现(implements)