【题目描述】

对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为:

修改一个字符(如把“a”替换为“b”);

删除一个字符(如把“traveling”变为“travelng”)。

比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少“g”,我们都仅仅需要一次操作。我们把这个操作所需要的次数定义为两个字符串的距离。

给定任意两个字符串,写出一个算法来计算出他们的距离。

【输入】

第一行有一个整数n。表示测试数据的组数。

接下来共n行,每行两个字符串,用空格隔开,表示要计算距离的两个字符串。

字符串长度不超过1000。

【输出】

针对每一组测试数据输出一个整数,值为两个字符串的距离。

【输入样例】

3
abcdefg  abcdef
ab ab
mnklj jlknm

【输出样例】

1
0
4

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 1001
#define MOD 2520
#define E 1e-12
using namespace std;
char a[N],b[N];
int f[N][N];
int main()
{int n;cin>>n;while(n--){scanf("%s%s",a+1,b+1);int len_a=strlen(a+1);int len_b=strlen(b+1);for(int i=0;i<=len_a;i++)f[i][0]=i;for(int j=0;j<=len_b;j++)f[0][j]=j;for(int i=1;i<=len_a;i++)for(int j=1;j<=len_b;j++){if(a[i]==b[j])f[i][j]=f[i-1][j-1];elsef[i][j]=min(min(f[i-1][j-1],f[i-1][j]),f[i][j-1])+1;}cout<<f[len_a][len_b]<<endl;}return 0;
}

计算字符串距离(信息学奥赛一本通-T1298)相关推荐

  1. 输出亲朋字符串(信息学奥赛一本通-T1133)

    [题目描述] 编写程序,求给定字符串s的亲朋字符串s1. 亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符: 给定字符串s的第二个字符的AS ...

  2. 计算书费(信息学奥赛一本通-T1104)

    [题目描述] 下面是一个图书的单价表: 计算概论 28.9元/本 数据结构与算法 32.7元/本 数字逻辑 45.6元/本 C++程序设计教程 78元/本 人工智能 35 元/本 计算机体系结构 86 ...

  3. 计算邮资(信息学奥赛一本通-T1052)

    [题目描述] 根据邮件的重量和用户是否选择加急计算邮费.计算规则:重量在1000克以内(包括1000克), 基本费8元.超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算: ...

  4. 计算鞍点(信息学奥赛一本通-T1122)

    [题目描述] 给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点.鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值. 例如:在下面的例子中(第4行第1 ...

  5. 《信息学奥赛一本通 提高篇》 第四部分 数据结构 第4章 倍增求LCA

    例题1 点的距离 信息学奥赛一本通(C++版)在线评测系统 例题2 暗的连锁(Poj3417) 信息学奥赛一本通(C++版)在线评测系统 LOj10131 暗的连锁_juruo_xlh-CSDN博客 ...

  6. 信息学奥赛一本通 1356:计算(calc)

    [题目链接] ybt 1356:计算(calc) [题目考点] 1. 表达式求值 中缀表达式求值 2. 表达式树 表达式树:一棵表达式树可以表示一系列的运算. 表达式树中的结点包括运算符与数值 str ...

  7. 信息学奥赛一本通——1012:计算多项式的值

    大家好 今天给大家带来<信息学奥赛一本通--1012:计算多项式的值> 看题目: 1012:计算多项式的值 时间限制: 1000 ms         内存限制: 65536 KB 提交数 ...

  8. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

  9. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

最新文章

  1. linux怎么装谷歌浏览器,如何在linux CentOS 上安装chrome 谷歌浏览器?
  2. Leetcode周赛5827. 检查操作是否合法
  3. django orm级联_Django数据表关联关系映射(一对一、一对多、多对多)
  4. 看完这些福利才知道,为什么说双12一定要出去浪
  5. vue工程打包上线样式错乱问题 - bug解决(4种)
  6. Java基础---认识IO流---字节流、字符流---缓冲流---转换流
  7. ajax_典型应用_添加商品标题
  8. How to Make Terrains in Tiled Map Editor
  9. Android教程 第四章 用户界面设计基础
  10. 集合框架-ArrayList,Vector,Linkedlist
  11. 湖北省首条短途运输航线“荆门—武汉”航线运营
  12. 高德地图使用——定位功能
  13. ubuntu系统安装qq教程(超简单,亲测成功)
  14. 回答cad转pdf格式的简易方法
  15. MDIO总线介绍 |CSDN创作打卡
  16. 互联网创新创业大赛优秀范例_创新创业大赛优秀作品-互联网+大赛作品
  17. 无源微波器件--耦合线定向耦合器
  18. MySQL主从之GTID主从
  19. MySQL性能问题以及查找和处理
  20. Centos 8查询和设置当前时区

热门文章

  1. 名校生都去哪些互联网公司?
  2. 这样写代码,真是帅到没有朋友
  3. 最牛逼的微服务架构方案,没有之一!
  4. Oracle 9i 的安装(图解)
  5. Learning to see in the dark【SID】论文笔记
  6. Java 解析 XML
  7. RedHat系列软件管理(第二版) --二进制软件包管理
  8. hadoop--完全分布式运行模式
  9. Android开发人员应该知道的一些技术
  10. 建个数据中心就想发展IDC?没那么简单!