操作有3种:删除、替换、插入
- 问题:把字符串A变为B的最少操作次数。
- 例如:
动态规划思想:
- 递推公式:
- 代码:
#include<bits/stdc++.h>
using namespace std;
#define N 1000
int D[N][N];//字符串s[1..n]变为t[1..m]的最小编辑距离
char Rec[N][N]; //记录字符串的每步操作。 U删除,L插入,X替换
int n,m, k=0; //分别为2个字符串长度 ,k总操作次数
string s,t;
void MinEditDistance()
{
int i,j, c;
int replace,del,insert; //替换、删除、插入操作
for(i=1;i<=n;i++){
for( j=1;j<=m;j++){
c = 0; //判断这2个字符是否相同
if(s[i-1] != t[j-1])