题解 | #公共子串计算#
公共子串计算
http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
#include<iostream>
using namespace std;
int main()
{
string a,b;
while(cin>>a>>b)
{
int c=0;
for(int i=0;i<a.length();i++)
{
for(int j=0;j<b.length();j++)
{
for(int m=0;m<min(a.length()-i,b.length()-j);m++)
{
if(a[i+m]==b[j+m]&&i+m!=a.length()-1&&j+m!=b.length()-1)
{
continue;
}
else if(a[i+m]!=b[j+m])
{
if(m>c)
{
c=m;
m=0;
}
break;
}
else if(a[i+m]==b[j+m]&&(i+m==a.length()-1||j+m==b.length()-1))
{
if(m+1>c)
{
c=m+1;
m=0;
}
break;
}
}
}
}
cout<<c;
}
return(0);
}
using namespace std;
int main()
{
string a,b;
while(cin>>a>>b)
{
int c=0;
for(int i=0;i<a.length();i++)
{
for(int j=0;j<b.length();j++)
{
for(int m=0;m<min(a.length()-i,b.length()-j);m++)
{
if(a[i+m]==b[j+m]&&i+m!=a.length()-1&&j+m!=b.length()-1)
{
continue;
}
else if(a[i+m]!=b[j+m])
{
if(m>c)
{
c=m;
m=0;
}
break;
}
else if(a[i+m]==b[j+m]&&(i+m==a.length()-1||j+m==b.length()-1))
{
if(m+1>c)
{
c=m+1;
m=0;
}
break;
}
}
}
}
cout<<c;
}
return(0);
}