题目描述
求串的最长重复子串长度(子串不重叠)。
例如:abcaefabcabc的最长重复子串是串abca,长度为4。
输入
测试次数t
t个测试串
输出
对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.
样例输入
3 abcaefabcabc szu0123szu szuabcefg
样例输出
4 3 -1
#include <iostream>
#include <string>
using namespace std;
int test()
{
string s,t1,t2;
cin>>s;
for(int len=s.size()/2;len>0;len--)
{
for(int i=0;i<s.size()-len;i++)
{
t1=s.substr(i,len);
t2=s.substr(len+i);
if(t2.find(t1)!=string::npos)
return len;
}
}
return -1;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cout<<test()<<endl;
}
return 0;
}