把第一个字符串遍历一遍,复杂度为N。
伪代码:
string s1,s2;
int p1=0,p2=0;
int max=0; string maxMatch;
while(p1!=0&&p2!=0)
{
int cnt=0;
while(s1[p1]==s2[p2]) {++p1;++p2;++cnt;}
if(s2[p2]=='')
while(s1[p1]!=s2[p2+1]) {++p1;++cnt;}
if(cnt>max) {max=cnt;maxMatch=s1substring(p1-cnt,cnt);}
}
cout<<max<<maxMatch<<endl;
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)