Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
116970 | 勾勾 | 编辑距离 | C++ | 通过 | 100 | 0 MS | 268 KB | 419 | 2023-12-21 13:20:36 |
#include<bits/stdc++.h>> using namespace std; char a[3000],b[3000]; int c[3000],d[3000]; int main() { scanf("%s%s",a,b); int l1=strlen(a),l2=strlen(b); for(int i=1;i<=l2;i++) d[i]=i; for(int i=1;i<=l1;i++) { c[0]=i;d[0]=i-1; for(int j=1;j<=l2;j++) if(a[i-1]==b[j-1])c[j]=d[j-1]; else c[j]=min(min(d[j],d[j-1]),c[j-1])+1; for(int j=1;j<=l2;j++)d[j]=c[j]; } printf("%d\n",c[l2]); }