编辑距离
来源:互联网 发布:《大数据时代》电子书 编辑:程序博客网 时间:2024/06/08 13:47
编辑距离
应用场景
计算2个字符的转换的最少操作次数。
删除,添加,替换分别为一次操作数。
将2个字符串建立2维的字符矩阵。
首先定义这样一个函数——edit(i, j),它表示第一个字符串的长度为i的子串到第二个字符串的长度为j的子串的编辑距离。
显然可以有如下动态规划公式:
if i == 0 且 j == 0,edit(i, j) = 0
if i == 0 且 j > 0,edit(i, j) = j
if i > 0 且j == 0,edit(i, j) = i
if i ≥ 1 且 j ≥ 1 ,edit(i, j) == min{ edit(i-1, j) + 1, edit(i, j-1) + 1, edit(i-1, j-1) + f(i, j) },当第一个字符串的第i个字符不等于第二个字符串的第j个字符时,f(i, j) = 1;否则,f(i, j) = 0。
我们的计算规则就是:
d[i,j]=min(d[i-1,j]+1 、d[i,j-1]+1、d[i-1,j-1]+temp) 这三个当中的最小值。
其中:str1[i] == str2[j],用temp记录它,为0。否则temp记为1
我们用d[i-1,j]+1表示增加操作
d[i,j-1]+1 表示我们的删除操作
d[i-1,j-1]+temp表示我们的替换操作
本来想找到将2个字符串的不同部分截取出来,搜索到此算法,考虑了一下,感觉这个只是计算替换的最少步骤。
阅读全文
0 0
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- 编辑距离
- more命令
- 高性能Mysql主从架构的复制原理及配置详解
- SurfaceView录制视频
- CentOS安装Mysql
- 最常用的四种大数据分析方法
- 编辑距离
- P和NP问题
- Java学习笔记-ArrayList(2)和LinkedList
- DELPHI XE 调用 DELPHI 7 写的DLL的问题
- hdu 1598 find the most comfortable road
- 代价函数总结
- Python中关于str()函数和repr()函数的那些事
- 构建Linux驱动开发环境全过程(X210bv3)
- 基于@AspectJ和Schema的AOP(精通Spring+4.x++企业应用开发实战 第八章)