4007:计算字符串距离

总时间限制: 1000ms 内存限制: 65536kB
描述
对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为:
修改一个字符(如把“a”替换为“b”)
删除一个字符(如把“traveling”变为“travelng”)

比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少“g”,我们都仅仅需要一次操作。我们把这个操作所需要的次数定义为两个字符串的距离。
给定任意两个字符串,写出一个算法来计算出他们的距离。
输入
第一行有一个整数n。表示测试数据的组数,
接下来共n行,每行两个字符串,用空格隔开。表示要计算距离的两个字符串
字符串长度不超过1000。
输出
针对每一组测试数据输出一个整数,值为两个字符串的距离。
样例输入
3
abcdefg abcdef
ab ab
mnklj jlknm
样例输出
1
0
4

问题链接:Bailian4007 计算字符串距离
问题简述:(略)
问题分析:DP问题,关键是状态转换方程,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4007 计算字符串距离 */#include <stdio.h>
#include <string.h>#define MIN(a, b) ((a) <= (b) ? (a) : (b))
#define L 1000 + 1
char a[L], b[L];
int dp[L][L];int main()
{int n;scanf("%d", &n);while (n--) {memset(dp, 0, sizeof(dp));scanf("%s%s", a, b);int alen = strlen(a), blen = strlen(b);for (int i = 0; i <= alen; i++)dp[i][0] = i;for (int i = 0; i <= blen; i++)dp[0][i] = i;for (int i = 1; i <= alen; i++)for (int j = 1; j <= blen; j++)if (a[i - 1] == b[j - 1])dp[i][j] = dp[i - 1][j - 1];elsedp[i][j] = MIN(dp[i - 1][j - 1], MIN(dp[i - 1][j], dp[i][j - 1])) + 1;printf("%d\n", dp[alen][blen]);}return 0;
}

Bailian4007 计算字符串距离【DP】相关推荐

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

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

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

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

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

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

  4. 编辑距离及编辑距离算法 | Levenshtein距离 |DP

    感谢:http://www.cnblogs.com/biyeymyhjob/archive/2012/09/28/2707343.html 加一点自己理解 编辑距离概念描述: 编辑距离,又称Leven ...

  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 ...

最新文章

  1. 【JDK源码】Iterator与Iterable的实现与区别
  2. 使用 jQuery 修改 DOM 方法
  3. DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器...
  4. 怎么才能把项目做烂?!
  5. ext get id js_【翻译】Ext JS最新技巧——2015-8-11
  6. 深度学习Dubbo系列(入门开篇)
  7. 好久没有写blog了。。。
  8. centOS6.4部署svn
  9. 令程序员们夜不能寐的“噩梦”除了改需求,还有这些…...
  10. sql注入工具的使用
  11. 亚马逊自然语言NLP 商品评论智能分析 demo及开发过程 【1 总体API介绍】【持续更新中】
  12. iOS 微信8.0.11更新,新功能,新变化
  13. FISCO BCOS 2022年度贡献者榜单
  14. SitePoint播客#94:新年快乐!
  15. 三星意欲赢回苹果A系列芯片订单 台积电当仁不让
  16. 肖 清华计算机系 北大生命科学,7个清华北大,11+复旦交大,后续还有一大波浙大……他们都是同班同学!...
  17. 图片放大不失真的方法,图无损放大
  18. 找准EMS,企业争做“碳”路者
  19. demo:飞机大战游戏 python小项目
  20. 2022届华中科技大学软件学院考研经验贴

热门文章

  1. 共性的缺失——由博客想到的
  2. 树莓派Python 3.x+TensorFlow 1.9.0
  3. 学术英语视听说2听力原文_做英语听力题有哪些非常实用的小技巧?
  4. Web服务器之Http压缩(GZip)
  5. mysql 5.5 主从_Mysql5.5常用命令及主从配置
  6. scala递归求斐波那契数列
  7. 剑指offer面试题55 - II. 平衡二叉树(后序遍历)(剪枝)
  8. Python——EM(期望极大算法)实战(附详细代码与注解)(一)
  9. 面向对象编程(二):继承
  10. word文档中页眉页脚的设置问题