编辑距离问题 dp

原创 2012年03月26日 23:10:27

其实和最长字符串公共序列差不多,关键是要把握好状态的转移。。其他的就没什么了,不解释哈,、、、继续学习中。。。。。

题目描述:设A和B是两个字符串。要求用最少的步骤将字符A转换为字符串B.

步骤包括:

1. 删除一个字符    2. 插入一个字符   3.将一个字符改变为另一个字符。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char A[100], B[100];
int str[100][100];
int m, n;
int min_2(int x, int y)
{
    if(x<y)
    return x;
    return y;
}
int min(int x, int y, int z)
{
   return min_2(min_2(x,y),z);
}
int dp(char *a, char *b)
{
    int i, j;
    m = strlen(a), n = strlen(b);
    int M = (m>n? m:n);
    memset(str, 0, sizeof(str));
    for(i=0; i<=M; i++)
    for(j=0; j<=M; j++)
    {
      if(a[i]==b[j])
      str[i+1][j+1] = str[i][j];
      else
      {
      str[i+1][j+1] = min(str[i+1][j],str[i][j+1],str[i][j])+1;
      }
    } 
    return str[m+1][m+1];
} 
int main()
{
   gets(A);
   gets(B);
    int t = dp(A,B);
    printf("%d\n",t);
   system("pause");
   return 0;
}



51Nod 1183 编辑距离(DP—编辑距离问题)

1183 编辑距离 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 编辑距离,又称Levenshtein距离(也叫做Edit Dis...
  • zwj1452267376
  • zwj1452267376
  • 2016年04月19日 22:03
  • 1160

dp 编辑距离问题

题意:编辑距离问题就是给两个字符串; 如: abcdef abbefc 通过增、删、改三种方式使第二个字符串变成第一个字符串; 显然此样例为 3 次改动; 题目求给定的字符串以后最少的改动...
  • a1083595345
  • a1083595345
  • 2016年05月13日 17:16
  • 183

哈理工OJ 1284 编辑距离(DP问题)

题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1284编辑距离 Time Limit: ...
  • qq_32866009
  • qq_32866009
  • 2017年04月10日 00:32
  • 489

DP解编辑距离

#include using namespace std; char *a = "ALGORITHM"; char *b = "ALTRUISTIC"; int dp[20][20]; int ...
  • seagullyoyo
  • seagullyoyo
  • 2014年09月13日 19:54
  • 352

编辑距离算法——动态规划

概念解释: 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同,所以一般会用来表示两个字符串的相似度。允许的操作...
  • fuyukai
  • fuyukai
  • 2015年09月22日 18:05
  • 592

编辑距离------DP(动态规划)

编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除...
  • Joe19310
  • Joe19310
  • 2017年10月09日 12:44
  • 256

编辑距离问题

描述 设A 和B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字...
  • a997930294
  • a997930294
  • 2014年01月16日 10:23
  • 789

最小编辑距离问题(Edition Distance)

注:这篇博客讨论的算法是怎样求解两个字符串的最小编辑距离,其目的是为了下一篇的虚拟DOM,来做一个预备工作,这里主要讨论的用LevenshteinDistanceLevenshtein Distanc...
  • zp1996323
  • zp1996323
  • 2016年06月17日 22:54
  • 1542

最短编辑距离问题 : Levenshtein Distance

个人觉得只要你能明白edit数组的含义就可以理解状态转移方程了。/* 可以用来表示字符串的相似度? */ #include using namespace std; int edit[100][10...
  • qq_21063873
  • qq_21063873
  • 2016年10月29日 21:02
  • 248

[动态规划----基本DP]编辑距离 51nod 1183

Part1 题意 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字...
  • jianwei2016
  • jianwei2016
  • 2017年10月11日 02:27
  • 161
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编辑距离问题 dp
举报原因:
原因补充:

(最多只允许输入30个字)