其他分享
首页 > 其他分享> > 1298:计算字符串距离

1298:计算字符串距离

作者:互联网

计算字符串距离

考虑一种特殊情况“sad adf”

最初我仅将f[0][0]初始化为0,程序得到的答案一直是3,但可以看出正确的答案应当是2。

后面发现应当将数组边缘进行正确的初始化

 1 #include<iostream>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=1005;
 6 int f[N][N];
 7 
 8 int main(){
 9     int n;
10     cin>>n;
11     while(n--){
12         string s1,s2;
13         cin>>s1>>s2;
14         int l1=s1.length(),l2=s2.length();
15         memset(f,127,sizeof(f));
16         //初始化
17         for(int i=0;i<=l1;i++)f[0][i]=i;
18         for(int i=1;i<=l2;i++)f[i][0]=i;
19         f[0][0]=0;
20         for(int i=1;i<=l2;i++)
21             for(int j=1;j<=l1;j++){
22                 f[i][j]=f[i-1][j-1]+(s2[i-1]==s1[j-1]?0:1);
23                 f[i][j]=min(f[i][j],min(f[i-1][j],f[i][j-1])+1);
24             }
25         cout<<f[l2][l1]<<endl;
26     }
27     return 0;
28 }

 

标签:初始化,int,s2,s1,length,距离,1298,字符串,include
来源: https://www.cnblogs.com/sxrekord/p/calculate_string_distance.html