#include<iostream>
#include<string>
using namespace std;
void getMaxSub(string a,string b)
{
int len1 = a.length();
int len2 = b.length();
int maxlen = 0;
int mstart = 0,mend = 0;
for(int i = 0; i<len1;i++)
{
for(int j= 0;j<len2;j++)
{
if(a[i]==b[j])
{
int temp = 1;
int temps = i;
int next1 = i+1;
int next2 = j+1;
while(next1<len1&&next2<len2)
{
if(a[next1]==b[next2])
{
++temp;
++next1;
++next2;
}
else
break;
}
if(temp>maxlen)
{
maxlen = temp;
mstart = temps;
mend = mstart + maxlen-1;
}
}
}
}
if(maxlen>0)
{
for(int k = mstart;k<=mend;k++)
{
cout<<a[k];
}
cout<<endl;
}
}
int main()
{
string a,b;
cin>>a>>b;
getMaxSub(a,b);
return 0;
}
华为oj 查找两个字符串a,b中的最长公共子串
最新推荐文章于 2021-05-17 02:14:57 发布