Bailian4007 计算字符串距离【DP】
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】相关推荐
- 计算字符串距离(信息学奥赛一本通-T1298)
[题目描述] 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把"a"替换为"b"); 删除一个字符(如把"t ...
- 字符串距离(opj )(动态规划)
题目描述2988:计算字符串距离 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把"a"替换为"b") 删除一个字符( ...
- 计算字符串的距离(编辑距离)
计算字符串的距离 描述 Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个 ...
- 编辑距离及编辑距离算法 | Levenshtein距离 |DP
感谢:http://www.cnblogs.com/biyeymyhjob/archive/2012/09/28/2707343.html 加一点自己理解 编辑距离概念描述: 编辑距离,又称Leven ...
- 计算字符串的相似度/华为机试(C/C++)
题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把"a"替换为" ...
- R语言:计算各种距离
R语言:计算各种距离 MATLAB 版本的 http://blog.csdn.net/sinat_26917383/article/details/52101425 PYTHON版本的 http:// ...
- Python 计算各类距离
原文:https://blog.csdn.net/qq_19707521/article/details/78479532 Python Numpy计算各类距离 详细: 1.闵可夫斯基距离(Minko ...
- es6与java的相似度_计算字符串的相似度-两种解法
一直不理解,为什么要计算两个字符串的相似度呢.什么叫做两个字符串的相似度.经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面的答案和为什么要计算字符串相似度的解释.因为搜索引擎要把通过 ...
- c语言字符串子串问题,C语言计算字符串子串出现的次数
#include #include int substring(char *str,char *str1);//函数原型 int main(void) { char str[64]={0}; char ...
最新文章
- 【JDK源码】Iterator与Iterable的实现与区别
- 使用 jQuery 修改 DOM 方法
- DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器...
- 怎么才能把项目做烂?!
- ext get id js_【翻译】Ext JS最新技巧——2015-8-11
- 深度学习Dubbo系列(入门开篇)
- 好久没有写blog了。。。
- centOS6.4部署svn
- 令程序员们夜不能寐的“噩梦”除了改需求,还有这些…...
- sql注入工具的使用
- 亚马逊自然语言NLP 商品评论智能分析 demo及开发过程 【1 总体API介绍】【持续更新中】
- iOS 微信8.0.11更新,新功能,新变化
- FISCO BCOS 2022年度贡献者榜单
- SitePoint播客#94:新年快乐!
- 三星意欲赢回苹果A系列芯片订单 台积电当仁不让
- 肖 清华计算机系 北大生命科学,7个清华北大,11+复旦交大,后续还有一大波浙大……他们都是同班同学!...
- 图片放大不失真的方法,图无损放大
- 找准EMS,企业争做“碳”路者
- demo:飞机大战游戏 python小项目
- 2022届华中科技大学软件学院考研经验贴
热门文章
- 共性的缺失——由博客想到的
- 树莓派Python 3.x+TensorFlow 1.9.0
- 学术英语视听说2听力原文_做英语听力题有哪些非常实用的小技巧?
- Web服务器之Http压缩(GZip)
- mysql 5.5 主从_Mysql5.5常用命令及主从配置
- scala递归求斐波那契数列
- 剑指offer面试题55 - II. 平衡二叉树(后序遍历)(剪枝)
- Python——EM(期望极大算法)实战(附详细代码与注解)(一)
- 面向对象编程(二):继承
- word文档中页眉页脚的设置问题