题目描述
求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。
输入
测试次数t
t个测试串
输出
对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.
输入样例1
3
abcaefabcabc
0szu0123szu1
szuabcefg
输出样例1
4
3
-1
#include<iostream>
using namespace std;
/*主要思路:将字符串分成两段,分别一个字符单独讨论,
将两端字符串分别截取出2,3,一直到length-size的长度,
分别比较两个字符串的截取元素是否相等*/
int ans = -1;
int single(string str) {
for (int i = 0; i < str.size()-1; i++) {
for (int j = i+1; j < str.size(); j++) {
if (str[i] == str[j]) {
ans = 1;
return ans;
}
}