Description
如果一个长度为2n 的字符串(a 1 ,a 2 ,a 3 ,⋯,a 2n ) ,满足a i =a i+n ,i=1,2,⋯,n ,我们称这样的字符串为"co-string"。
现在给你一个只含英文小写字母的字符串,请找出其最长的"co-string"子串的长度。
Input
第一行是一个整数K(K≤100) ,表示样例的个数。
每个样例占一行是一个长度不超过1000的字符串,全是小写英文字母。
Output
依次,每行输出一个样例的结果,如果不存在"co-string"子串,输出0。
Sample Input
2
abbab
aaaabbbbbb
Sample Output
2
6
线索
第一个样例,只有co-string子串"bb",所以长度是2。
第二个样例,最长的co-string子串是"bbbbbb",所以长度是6。
解题思路:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int k;
cin>>k;
while(k--)
{
char s[1001];
scanf("%s",s);
int i,j,t;
int l = strlen(s);
for(i = l/2; i >= 0; i--)
{
for(j = 0; j <= l-2*i; j++)
{
for(t = j; t < i+j; t++)
{
if(s[t] != s[t+i])
break;
}
if(t >= i+j)
{
cout<<i*2<<endl;
break;
}
}
if(j <= l-2*i)
break;
}
}
return 0;
}