正文

jnu(String Matching)2005-08-27 16:00:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/4201.html

分享到:

#include <iostream.h>
#include <fstream.h>
ifstream f("String.in");
#define cin f
#include <string.h>
int main()
{
    char a[1000],b[1000],temp[1000];
    while(cin>>a)
    {
        int total=0;
        int sum,i,j,k;
        if(strcmp(a,"-1")==0) return 0;
        cin>>b;
        cout<<"appx("<<a<<","<<b<<") = ";
        if(strlen(a)<strlen(b))
        {
            strcpy(temp,a);
            strcpy(a,b);
            strcpy(b,temp);
        }
        for(i=0;i<strlen(a);i++)
        {
            //sum=0;
            for(j=0;j<strlen(b);j++)
            {
                sum=0;
                for(k=j;k<strlen(b);k++)
                {
                    
                if(k+i-j<strlen(a))
                {
                    if(a[i+k-j]==b[k])
                        sum++;
                }
                }
                if(sum>total)
                total=sum;
            }
        }
        if(total==0)
            cout<<total<<endl;
        else if(total*2==strlen(a)+strlen(b))
            cout<<"1"<<endl;
        else
        {
            int m=total*2;
            int n=strlen(a)+strlen(b);
            for(i=2;i<=n;i++)
            {
                while(n%i==0 && m%i==0)
                {
                    n=n/i;
                    m=m/i;
                }
            }
            cout<<m<<"/"<<n<<endl;
        }
    }
}

阅读(2406) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册