计算字符串的相似度

来源:互联网 发布:js 修改input type 编辑:程序博客网 时间:2024/06/05 06:08
#include<bits/stdc++.h>using namespace std;int main(){    string a,b;    int dp[1000][1000];    while(cin>>a>>b)    {        memset(dp,0,sizeof(dp));        for(int i=0;i<=a.size();i++)            dp[i][0]=i;        for(int j=0;j<=b.size();j++)            dp[0][j]=j;        for(int i=1;i<=a.size();i++)            for(int j=1;j<=b.size();j++)            if(a[i-1]==b[j-1])dp[i][j]=dp[i-1][j-1];            else dp[i][j]=min(dp[i-1][j-1],min(dp[i-1][j],dp[i][j-1]))+1;        cout<<"1/"<<dp[a.size()][b.size()]+1<<endl;    }    return 0;}/*#include<bits/stdc++.h>using namespace std;int dist(string a,string b,int i,int j){    if(i>=a.size())    {        if(j>=b.size())return 0;        else return b.size()-j;    }    if(j>=b.size())    {        if(i>=a.size())return 0;        else return a.size()-i;    }    if(a[i]==b[j])return dist(a,b,i+1,j+1);    return min(dist(a,b,i+1,j+1),min(dist(a,b,i,j+1),dist(a,b,i+1,j)))+1;}int main(){    string a,b;    while(cin>>a>>b)    {        cout<<"1/"<<dist(a,b,0,0)+1<<endl;    }    return 0;}*/

原创粉丝点击