文字列 : "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;
}