#include <bits/stdc++.h>
using namespace std;
char a[1005],b[1005],as,bs;
int f[1005][1005];
void dp(){
for (int i=1; i<=as; i++) f[i][0]=i;
for (int i=1; i<=bs; i++) f[0][i]=i;
for (int i=1; i<=as; i++){
for (int j=1; j<=bs; j++){
if (a[i-1]==b[j-1]){
f[i][j]=f[i-1][j-1];
continue;
}
f[i][j]=min(min(f[i-1][j],f[i][j-1]),f[i-1][j-1])+1;
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
scanf("%s %s",&a,&b);
as=strlen(a);
bs=strlen(b);
dp();
cout << f[as][bs];
return 0;
}
@Chenxinrui20120304
我oj过了,为什么这个过不去啊
帮我看看