DS串应用—最长重复子串
题目描述
求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。
输入
测试次数t
t个测试串
输出
对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.
样例查看模式
正常显示
查看格式
输入样例1 <-复制
3
abcaefabcabc
szu0123szu
szuabcefg
输出样例1
4
3
-1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sr=new Scanner(System.in);
int t;t=sr.nextInt();String ss=sr.nextLine();
for (int tt = 0; tt < t; tt++) {
int c=0;
String s=sr.nextLine();
int n=s.length();
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n+1; j++) {
if((s.substring(0,i)+s.substring(j)).contains(s.substring(i,j))){
if(c<s.substring(i,j).length())
c=s.substring(i,j).length();
}
}
}
if(c==0)
System.out.println(-1);
else System.out.println(c);
}
}
}