编辑距离问题
来源:互联网 发布:网络推广部职责学生会 编辑:程序博客网 时间:2024/05/23 15:35
问题描述:设A和B是2个字符串。要用最少的字符操作将字符A转化为字符B。
字符操作包括:
(1)删除一个人字符。
(2)插入一个字符。
(3)将一个字符改为另一个字符。
将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B 的编辑距离,记为d(A,B)。设计一个算法,对给定的任意两个字符串A和B计算出他们的编辑距离d(A,B).
例如:
输入:
fxpimu
xwrs
输出:
5
分析:
动态规划算法代码:
// 编辑距离问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<string>#define maxNum 65535using namespace std;int minValue(int a,int b,int c){int min=a;if(min>b)min=b;if(min>c)min=c;return min;}int _tmain(int argc, _TCHAR* argv[]){string a, b;cin>>a>>b;int m=a.size ();int n=b.size ();int h;int **d=new int *[m+1];for(int i=0;i<=m;i++)d[i]=new int [n+1];for(int i=0;i<=m;i++)d[i][0]=i;for(int j=0;j<=n;j++)d[0][j]=j;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){d[i][j]=maxNum ;if(a[i]==b[j])h=0;elseh=1;d[i][j]=minValue(d[i-1][j-1]+h,d[i-1][j]+1,d[i][j-1]+1);}}cout<<d[m][n]<<endl;return 0;}
- 编辑距离问题
- 【dp】编辑距离问题
- 王晓东 编辑距离问题
- 编辑距离问题 dp
- 编辑距离问题
- 王晓东 编辑距离问题
- 编辑距离问题
- 编辑距离问题
- 编辑距离问题(1)
- 编辑距离问题
- DP_编辑距离问题
- 编辑距离问题(1)
- 编辑距离问题
- 编辑距离问题
- 编辑距离问题
- 编辑距离问题
- dp 编辑距离问题
- 编辑距离问题
- 持续集成(一)-为何采用持续集成
- 数学之美系列十二:余弦定理和新闻的分类
- 《Linux设备驱动开发详解》第2版第6章 - 字符设备驱动
- 排序3中基本方法
- C/C++中宏使用(关于## 和...变参宏)
- 编辑距离问题
- 英文huffman编码
- Spring RMI暴露服务
- 设计模式学习笔记——依赖倒置原则
- windows phone (24) Canvas元素A
- materialized view基础知识
- TCP_NODELAY和TCP_CORK
- php把一个格式化的文件转换为一个二维数组
- js跳转页面方法(转)