请从字符串中找出至少重复一次的子串的最大长度
输入描述:
字符串,长度不超过1000
输出描述:
重复子串的长度,不存在输出0
输入示例:
ababcdabcefsgg
输出示例:
3
说明:
abc为重复的最长子串
代码实现
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(findLongestRepeatString(str));
}
private static int findLongestRepeatString(String s){
int maxLen = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
int l = 0;
for (int j = i + 1; j < len; j++) {
l = statLen(s, i, j);
if(maxLen < l){
maxLen = l;
}
}
}
return maxLen;
}
private static int statLen(String s, int k, int j){
int len = 0;
while(k < s.length() && j < s.length() && s.charAt(k) == s.charAt(j)){
k++;
j++;
len++;
}
return len;
}
}