题解 | #计算字符串的编辑距离#
计算字符串的编辑距离
https://www.nowcoder.com/practice/3959837097c7413a961a135d7104c314
#include <ios> #include <iostream> #include <string.h> using namespace std; int minn(int a,int b){ return a<b?a:b; } int main() { char s1[1001],s2[1001]; int i,j,k,t[1001][1001]; cin>>s1>>s2; for(i=0;i<=strlen(s1);i++)//注意初始化条件 t[i][0]=i; for(i=0;i<=strlen(s2);i++) t[0][i]=i; for(i=1;i<=strlen(s1);i++){ for(j=1;j<=strlen(s2);j++){ if(s1[i-1]==s2[j-1]){ t[i][j]=t[i-1][j-1]; //cout<<i-1<<' '<<j-1<<endl; } else{ t[i][j]=minn(minn(t[i-1][j-1],t[i][j-1]),t[i-1][j])+1; } } } cout<<t[strlen(s1)][strlen(s2)]<<endl; return 0; } // 64 位输出请用 printf("%lld")