USACO October 2009 Qualifying Barn Echoes
问题描述:
奶牛们非常享受在牛栏中哞叫,因为她们可以听到她们哞声的回音。虽然有时候并不能完全听到完整的回音。Bessie曾经是一个出色的秘书,所以她精确地纪录了所有的哞叫声及其回声。她很好奇到底两个声音的重复部份有多长。
输入两个字符串(长度为1到80个字母),表示两个哞叫声。你要确定最长的重复部份的长度。两个字符串的重复部份指的是同时是一个字符串的前缀和另一个字符串的后缀的字符串。我们通过一个例子来理解题目。考虑下面的两个哞声:
Moyooyoxyzooo
yzoooqyasdfljkamo
第一个串的最后的部份"yzooo"跟第二个串的第一部份重复。第二个串的最后的部份"mo"跟第一个串的第一部份重复。所以"yzooo"跟"mo"都是这2个串的重复部份。其中,"yzooo"比较长,所以最长的重复部份的长度就是5。
输入格式
共两行: 每一行是1个字符串表示奶牛的哞声或它的回声。
输出格式
仅一行,包含一个单独的整数表示输入的2个字符串中,一个字符串的前缀和另一个字符串的后缀的最长的重复部份的长度。
样例输入输出
echo.in
abcxxxxabcxabcd
abcdxabcxxxxabcx
echo.out
11
样例输入输出解释:
"abcxxxxabcx"是第一个字符串的前缀和第二个字符串的后缀。
program nphs;
var
m,la,i,j:integer;
a,b,t:string;
begin
readln (a);
readln (b);
la:=length(a);
m := 0;
for i := 1 to la do
for j := 1 to la-i+1 do
begin
t:=copy(a,i,j);
if pos(t,b)=0 then continue else
if length(t)>m then
m := length(t);
end;
writeln (m);
end.