public class LRS {
public static void main(String[] args) {
String X = "ABABABA";
System.out.println(nativeLRS(X));
}
public static String nativeLRS(String x) {
int length = x.length();
int maxLength = 0;
String max = null;
for (int i =0; i < length; i++) {
int len = 0;
int k = i;
for (int j = i+1; j < length; j++) {
len = statLen(x, k, j);
if (len > maxLength) {
maxLength = len;
max = x.substring(k, len);
}
}
}
return max;
}
public static int statLen(String x, int k, int j) {
int cur_len = 0;
while(k < x.length() && j < x.length() && x.charAt(k) == x.charAt(j)) {
k++;
j++;
cur_len++;
}
return cur_len;
}
}
【Java】LRS最小重复子串
最新推荐文章于 2026-05-17 05:16:36 发布
本文介绍了一个用于寻找字符串中最长重复子串的Java程序。通过双重循环遍历字符串,并使用辅助函数来比较不同位置开始的子串是否相同,从而找出最长的重复子串。

614

被折叠的 条评论
为什么被折叠?



