给定一个字符串:“blablafblafbla”和2个限制:x = 3,y = 5我想找到长度在x和y之间的最长重复子字符串。如果有很多,第一个在我的例子中是“ blaf" 几个问题: 1. 使用正则表达式更容易吗?2.我知道如何找到最长的子串,但是我必须在哪里设置它在 x 和 y 之间的条件?
public static String longestDuplicate(String text)
{
String longest = "";
for (int i = 0; i < text.length() - 2 * longest.length() * 2; i++)
{
OUTER: for (int j = longest.length() + 1; j * 2 < text.length() - i; j++)
{
String find = text.substring(i, i + j);
for (int k = i + j; k <= text.length() - j; k++)
{
if (text.substring(k, k + j).equals(find))
{
longest = find;
continue OUTER;
}
}
break;
}
}
return longest;
}