2555 - [语言过关]牛棚回声

奶牛们灰常享受在牛栏中牟叫,因為她们可以听到她们牟声的回音。虽然有时候并不能完全听到完整的回音。Bessie曾经是一个出色的秘书,所以她精确地纪录了所有的牟叫声及其回声。她很好奇到底两个声音的重复部份有多长。

输入两个字符串(长度為180个字母),表示两个牟叫声。你要确定最长的重复部份的长度。两个字符串的重复部份指的是同时是一个字符串的前缀(从第一个字符开始的连续字符串)和另一个字符串的后缀(从最后一个字符开始的连续字符串)的字符串。 

我们通过一个例子来理解题目。考虑下面的两个牟声: 

     moyooyoxyzooo

     yzoooqyasdfljkamo 

第一个串的最后的部份"yzooo"跟第二个串的第一部份重复。第二个串的最后的份"mo"跟第一个串的第一部份重复。所以"yzooo""mo"都是这2个串的重复部份。其中,"yzooo"比较长,所以最长的重复部份的长度就是5

输入格式

输入只有共两行,第一行为奶牛的牟叫,第二行为奶牛牟叫的回声

输出

输出为一行,包含一个单独的整数表示输入的2个字符串中,一个字符串的前缀和另一个字符串的后缀的最长的重复部份的长度。

样例输入

abcxxxxabcxabcd

abcdxabcxxxxabcx

样例输出

<span style="font-family:'Lucida Console';">11</span>

题目输入

题目输出

输入/输出样例

题目输入


                

题目输出


                

C++解答

#include <iostream>
using namespace std;
int main(){
	//freopen("test6.in","r",stdin);
    string a,b;
    int la,lb,ai,bi,c,ans=0;
    cin>>a>>b;
    la=a.size();
    lb=b.size();
    for(int i=0;i<la;i++){
        for(int j=0;j<lb;j++){
            ai=i,bi=j,c=0;
            while(a[ai]==b[bi]&&c<min(la,lb)){
                ai++;bi++;
                c++;
            }
            ans=max(ans,c);
        }
    }
    cout<<ans;
    return 0;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题