51Nod 1183 编辑距离(dp)
来源:互联网 发布:时时彩源码下载 编辑:程序博客网 时间:2024/05/20 23:35
1183 编辑距离
编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
例如将kitten一字转成sitting:
sitten (k->s)
sittin (e->i)
sitting (->g)
所以kitten和sitting的编辑距离是3。俄罗斯科学家Vladimir Levenshtein在1965年提出这个概念。
给出两个字符串a,b,求a和b的编辑距离。
Input
第1行:字符串a(a的长度 <= 1000)。第2行:字符串b(b的长度 <= 1000)。
Output
输出a和b的编辑距离
经典回顾
<span style="font-size:24px;">#include"stdio.h"#include"stdlib.h"#include"string.h"#define N 1002int a[N][N]={0};int min(int a,int b,int c){int k; k=a<b?a:b;return k<c?k:c;}int main(){char *str1,*str2,*p1,*p2;int i,j;str1=(char *)malloc(sizeof(char )*N);str2=(char *)malloc(sizeof(char )*N);scanf("%s%s",str1,str2);for(i=0;i<=strlen(str1);i++)a[i][0]=i;for(i=0;i<=strlen(str2);i++)a[0][i]=i; //注意初始化 for(p1=str1,i=1;p1<str1+strlen(str1);i++,p1++)for(p2=str2,j=1;p2<str2+strlen(str2);j++,p2++){int cost;cost=(*p1==*p2?0:1); a[i][j]=min(a[i-1][j-1]+cost,a[i-1][j]+1,a[i][j-1]+1);}printf("%d\n",a[strlen(str1)][strlen(str2)]);return 0;}</span>
0 0
- 51Nod 1183 编辑距离(DP—编辑距离问题)
- 【51Nod】1183 - 编辑距离(dp & 编辑距离)
- 51Nod 1183 编辑距离(DP—编辑距离问题)
- 51nod 1183编辑距离 经典dp
- 51Nod 1183 编辑距离(dp)
- 51nod 1183 编辑距离 DP
- 51nod 1183 编辑距离 dp
- 51Nod 1183 编辑距离 (DP
- 51Nod 1183 编辑距离 dp
- 51nod 1183 编辑距离(二维dp)
- [动态规划----基本DP]编辑距离 51nod 1183
- 51nod 编辑距离 (DP)
- 51Nod 编辑距离 DP+滚动数组
- 51nod 编辑距离 (DP)
- 51nod 编辑距离问题 dp
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 第二章 学习CC3200输入和中断
- 使用struts2生成图片验证码并显示
- corethink功能模块探索开发(二)让这个模块可安装
- 深入JVM彻底剖析前面ygc越来越慢的case
- 机器学习入门教程01
- 51Nod 1183 编辑距离(dp)
- 第三章 学习CC3200的ADC
- 安卓之动画主页
- Swift学习总结(个人总结,以方便理解为主)
- 后缀式算数求值
- java拷贝
- CSS垂直居中
- Zookeeper 安装和配置
- 机器学习01