题目

大概(又大概?)就是输入t组数据,每组数据输入两个字符串(又是两个字符串?) 然后我们可以进行以下操作
1.修改一个字符(如把“a”替换为“b”)
2.删除一个字符(如把“traveling”变为“travelng”)
然后我们求出让第一个字符串和第二个字符串相同最少需要几步操作。


输入

3
abcdefg abcdef
ab ab
mnklj jlknm

输出

1
0
4


解题思路

其实我之前做过一道题叫做编辑距离
网址:这里是网址
跟这题差不多,用f[i][j]表示从a[i]到b[i]的最短编辑距离。
这里列出动态转移方程:
f[i][j]=min(f[i-1][j-1]+1,f[i-1][j]+1,f[i][j-1]+1)
f[i-1][j-1]+1 表示改变该字符
f[i-1][j]+1 表示删去A串一个字符
f[i][j-1]+1 表示删去B串一个字符


贴代码

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int f[1002][1002],n,m,w;
char s1[1002],s2[1002];
int main()
{scanf("%d",&w);for (int w1=1;w1<=w;w1++){memset(f,0,sizeof(f));//清空scanf("%s%s",s1,s2);m=strlen(s1);n=strlen(s2);for (int i=1;i<=m;i++) f[i][0]=i;//将s1的1-i变为空串就是删去i个字符,//编辑距离为ifor (int i=1;i<=n;i++) f[0][i]=i;//同上for (int i=1;i<=m;i++)for (int j=1;j<=n;j++)if (s1[i-1]==s2[j-1]) f[i][j]=f[i-1][j-1];//如果两个字符一样就不需编辑 else {f[i][j]=min(min(f[i-1][j-1]+1,f[i-1][j]+1),f[i][j-1]+1);//求三种情况的最小值}printf("%d\n",f[m][n]);}return 0;
}

OJ4007-计算字符串距离【各种dp之2】相关推荐

  1. Bailian4007 计算字符串距离【DP】

    4007:计算字符串距离 总时间限制: 1000ms 内存限制: 65536kB 描述 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把"a&quo ...

  2. 计算字符串距离(信息学奥赛一本通-T1298)

    [题目描述] 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把"a"替换为"b"); 删除一个字符(如把"t ...

  3. 字符串距离(opj )(动态规划)

    题目描述2988:计算字符串距离 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把"a"替换为"b") 删除一个字符( ...

  4. 计算字符串的距离(编辑距离)

    计算字符串的距离 描述 Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个 ...

  5. 计算字符串的相似度/华为机试(C/C++)

    题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把"a"替换为" ...

  6. R语言:计算各种距离

    R语言:计算各种距离 MATLAB 版本的 http://blog.csdn.net/sinat_26917383/article/details/52101425 PYTHON版本的 http:// ...

  7. Python 计算各类距离

    原文:https://blog.csdn.net/qq_19707521/article/details/78479532 Python Numpy计算各类距离 详细: 1.闵可夫斯基距离(Minko ...

  8. es6与java的相似度_计算字符串的相似度-两种解法

    一直不理解,为什么要计算两个字符串的相似度呢.什么叫做两个字符串的相似度.经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面的答案和为什么要计算字符串相似度的解释.因为搜索引擎要把通过 ...

  9. c语言字符串子串问题,C语言计算字符串子串出现的次数

    #include #include int substring(char *str,char *str1);//函数原型 int main(void) { char str[64]={0}; char ...

  10. python公式计算_Python Numpy计算各类距离的方法

    详细: 1.闵可夫斯基距离(Minkowski Distance) 2.欧氏距离(Euclidean Distance) 3.曼哈顿距离(Manhattan Distance) 4.切比雪夫距离(Ch ...

最新文章

  1. 从0梳理1场CV缺陷检测赛事!
  2. linux文件系统逻辑,Linux系统——文件系统与LVM 逻辑
  3. VS2015编译ffmpeg 3.4.2
  4. 艾伟_转载:ASP.NET MVC数据验证
  5. 如何对第一个Vue.js组件进行单元测试
  6. Zend Framework学习之Zend_Mail
  7. LeetCode-----算法448.找到所有数组中消失的数字
  8. binarytreenode”使用 类 模板 需要 模板 参数列表_0基础掌握Django框架(7)Django模板介绍...
  9. 高性能mysql 3 pdf下载_《高性能MySQL_第3版》PDF版本下载
  10. 阐述SDN的原理、SDN使用场景、SDN技术的优缺点、SDN发展现状及分析SDN对社会和环境的影响
  11. 计算机仿真软件在医疗应用,医学虚拟仿真应用介绍
  12. Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes.
  13. 扫地机器人的喋血江湖
  14. 并发编程-基础篇五-ThreadLocal
  15. 如何具有更好的凝聚力,我的团队
  16. 教你如何打造一个适合学生党的学习型iPad
  17. jude 5.5.2 UML
  18. 【c++中内存拷贝函数(C++ memcpy)详解】
  19. 浅谈PPO算法-玩转月球登陆
  20. VUE使用document.onkeydown键盘的监听与移除

热门文章

  1. java跨库调用存储_存储库仅在第二个调用数据时发送回ViewModel
  2. cocoscreator editbox 只允许数字_《Cocos Creator游戏实战》做一个数字调节框
  3. div css标记,前端初学者必学的div加css标签
  4. sae 本地环境 mysql数据库_SAE本地环境与真实环境的差别
  5. mongorepository查询条件_MongoRepository实现增删改查和复杂查询【支持的查询类型】...
  6. 复旦计算机考研英语,2020考研复旦计算机专硕392经验贴
  7. excel怎么设置打印区域_别再浪费打印纸了!这样设置,Excel表格再大都能打印成一页!...
  8. 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)
  9. 815 计算机专业基础综合,2018年华东理工大学信息科学与工程学院815计算机专业基础综合之计算机操作系统考研基础五套测试题...
  10. 高等数学下-赵立军-北京大学出版社-题解-练习11.3