心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
枚举第一个字符串和第二个字符串的起点,然后向后匹配,找到最大值。
以下是我的代码:
#include<iostream>
using namespace std;

string a,b;
long la,lb,ans;

long f(long abegin,long bbegin)
{
    
for(long i=0; ;i++)
        
if(i+abegin>=la||i+bbegin>=lb||a.at(i+abegin)!=b.at(i+bbegin))
            
return i;
}

int main()
{
    cin
>>a>>b;
    
    la
=a.length();
    lb
=b.length();
    ans
=0;
    
for(long i=0;i<la;i++)
        
for(long j=0;j<lb;j++)
        {
            
long t=f(i,j);
            
if(ans<t) ans=t;
        }
    
    cout
<<ans<<endl;
return 0;
}
posted on 2010-10-22 10:43 lee1r 阅读(474) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:字符串处理

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理