POJ 1580 String Matching G++

来源:互联网 发布:娱乐软件英文怎么说 编辑:程序博客网 时间:2024/05/21 09:34
#include <iostream>#include <string>using namespace std;int main(){while(1){string a,b;cin>>a;if(a=="-1"){break;}cin>>b;int max=0;for(int i=0;i<a.size();i++){int js=0;for(int k=i,j=0;((k<a.size())&&(j<b.size()));k++,j++){if(a[k]==b[j]){js++;}}if(js>max){max=js;}}for(int i=0;i<b.size();i++){int js=0;for(int k=0,j=i;((k<a.size())&&(j<b.size()));k++,j++){if(a[k]==b[j]){js++;}}if(js>max){max=js;}}int chu=0;for(int i=(a.size()+b.size());i>0;i--){if(((a.size()+b.size())%i==0)&&((max*2)%i==0)){chu=i;break;}}cout<<"appx("<<a<<","<<b<<") = ";if(max==0){cout<<0<<endl;}else if(max*2==(a.size()+b.size())){cout<<1<<endl;}else if(chu!=0){cout<<max*2/chu<<"/"<<(a.size()+b.size())/chu<<endl;}else{cout<<max*2<<"/"<<a.size()+b.size()<<endl;}}return 0;}