20140914 【 动态规划 】 51nod 1183 . 编辑距离
2014-09-14 19:15
344 查看
![](http://img.51nod.com/Images/Top/logo.png)
![](http://img.51nod.com/Images/Top/submit.png)
![](http://img.51nod.com/Images/Top/focus.png)
![](http://img.51nod.com/Images/Top/friend.png)
![](http://img.51nod.com/Images/Top/star.png)
![](http://img.51nod.com/Images/Top/oj.png)
1
![](http://img.51nod.com/Images/Top/message.png)
![](http://img.51nod.com/Images/1x1.png)
徐华杰
![](http://img.51nod.com/Images/Top/down.gif)
![](http://img.51nod.com/Images/Icon/small/arrow3.png)
![](http://img.51nod.com/Images/Icon/small/tag.png)
动态规划 柔性字符串匹配 修改
1183 . 编辑距离
基准时间限制:1 秒 空间限制:65536 KB 分值: 0
编辑距离,又称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的编辑距离
Input 示例
kitten sitting
Output 示例
3
关注该问题 | 收藏 | 添加评论
![](http://img.51nod.com/Images/Icon/small/nav_sel.png)
OJ
使用说明
![](http://img.51nod.com/Images/Icon/small/nav_sel.png)
我的提交记录: 1
![](http://img.51nod.com/Images/Icon/small/nav_sel.png)
排行榜: 43
![](http://img.51nod.com/Images/Icon/small/nav_sel.png)
相关的讨论
请选择语言:
CC++C#
JavaPascal 允许其他人查看提交的代码
编号 | 相关问题 | 分值 |
1006 | 最长公共子序列Lcs | 0 |
1277 | 字符串中的最大值 | 40 |
1088 | 最长回文子串 | 5 |
1089 | 最长回文子串 V2 | 160 |
1157 | 全是1的最大子矩阵 | 40 |
分值
122
提交
60
AC
![](http://img.51nod.com/Images/Option/add.png)
![](http://img.51nod.com/Images/Option/favorite.png)
![](http://img.51nod.com/Images/Option/discuss.png)
![](http://img.51nod.com/Images/Icon/small/state.png)
问题状态
我的提交记录: 1
所有的提交记录: 122
Accepted的记录: 60
Accepted排行: 43
相关的讨论
浏览次数: 516
![](http://img.51nod.com/ti_25_25/upfile/000fbd2a/08d19b4b95910cc00000000000000007.jpeg)
![](http://hdn.xnimg.cn/photos/hdn411/20090222/20/30/large_A8U8_36421n204236.jpg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/ti_25_25/upload/000fbb4c/08d09586cc99dad4007204cd.jpeg)
![](http://img.51nod.com/ti_25_25/upload/000fbb39/08d0885dbd651fe7004078a5.jpeg)
![](http://img.51nod.com/ti_25_25/upload/000fbb04/08d05f39281db11b001f98c6.jpeg)
![](http://head.xiaonei.com/photos/0/0/men_main.gif)
![](http://img.51nod.com/ti_25_25/upload/000fbab6/08d0253afa7d586900028ee0.jpeg)
![](http://img.51nod.com/ti_25_25/upload/000fbb12/08d06a142b723b7d0065c360.jpeg)
![](http://img.51nod.com/ti_25_25/upload/000fba83/08cffe9e40552d15000097ff.jpeg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/ti_25_25/upload/000fba75/08cff43db5a3a21f000bb65e.jpeg)
![](http://img.51nod.com/ti_25_25/upload/000fba83/08cffe99d5a066ce00004142.jpeg)
![](http://img.51nod.com/ti_25_25/upload/000fb93d/08cf6c791154e56800001e32.jpeg)
![](http://img.51nod.com/ti_25_25/Images/Default/male.jpg)
![](http://img.51nod.com/Images/Icon/small/address.png)
你还未设定位置信息
![](http://img.51nod.com/Images/Icon/small/nav.png)
我的身边
![](http://img.51nod.com/Images/Icon/small/nav.png)
我的收藏
![](http://img.51nod.com/Images/Icon/small/nav.png)
我准备回答的问题
![](http://img.51nod.com/Images/Icon/small/nav.png)
@提到我的
![](http://img.51nod.com/Images/Icon/small/nav.png)
邀请我回答的问题
![](http://img.51nod.com/Images/Icon/small/nav.png)
今日问题
![](http://img.51nod.com/Images/Icon/small/nav.png)
好友的推荐
![](http://img.51nod.com/Images/Icon/small/nav.png)
邀请好友一起来点头 2
![](http://img.51nod.com/Images/Main/qrcode.jpg)
扫一扫二维码加入51Nod
线下技术交流微信群
![](http://pub.idqqimg.com/wpa/images/group.png)
新手入门 | 使用指南 | 建议反馈
来自
WiKi 的模板:
整數 Levenshtein距離(字符 str1[1..lenStr1], 字符 str2[1..lenStr2]) 宣告 int d[0..lenStr1, 0..lenStr2] 宣告 int i, j, cost 對於 i 等於 由 0 至 lenStr1 d[i, 0] := i 對於 j 等於 由 0 至 lenStr2 d[0, j] := j 對於 i 等於 由 1 至 lenStr1 對於 j 等於 由 1 至 lenStr2 若 str1[i] = str2[j] 則 cost := 0 否則 cost := 1 d[i, j] := 最小值( d[i-1, j ] + 1, // 刪除 d[i , j-1] + 1, // 插入 d[i-1, j-1] + cost // 替換 ) 返回 d[lenStr1, lenStr2]
实际上 与DNA比较类似。。
#include <iostream> #include <string> #include <algorithm> using namespace std; #define MAXN 1010 string s, e; int f[MAXN][MAXN]; int main(){ cin>>s>>e; for(int i=0; i<s.size(); i++) f[i][0] = i; for(int j=0; j<e.size(); j++) f[0][j] = j; for(int i=1; i<=s.size(); i++){ for(int j=1; j<=e.size(); j++){ int c = (s[i-1]!=e[j-1]); f[i][j] = min( f[i-1][j-1]+c, min( f[i-1][j]+1, f[i][j-1]+1 ) ); } } cout<< f[s.size()][e.size()] <<endl; return 0; }
相关文章推荐
- [动态规划----基本DP]编辑距离 51nod 1183
- 51nod 1183 编辑距离(动态规划)
- 51nod--1183 编辑距离(动态规划)
- 51nod 1183 编辑距离 DP
- 51Nod 1183 编辑距离 (DP)
- 51nod 1183 编辑距离(dp)
- 51Nod 1183:编辑距离
- 51Nod 1183 编辑距离 (DP
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51NOD 1183——编辑距离(动态规划基础)
- 51Nod-1183-编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51Nod 1183 编辑距离
- 【51Nod】-1183 编辑距离(LCS,编辑距离)
- 51Nod 1183 编辑距离(dp)
- 51nod 1183 编辑距离