Я пытаюсь найти субпалиндром в Java. Но приведенный ниже код не дает правильного вывода.найти самый большой субпалиндром в строке
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
in.useDelimiter("\n");
String text = in.next();
int start = 0;
int end = 0;
int i = 0;
int j = 0;
while(i <= text.length())
{
j = i+1;
while(j < text.length())
{
if(text.substring(i, j).equals(reverse(text.substring(i, j))))
{
if(j-i > end-start)
{
start = i; end = j;
}
}
j++;
}
i++;
}
System.out.println(start + " : " + end);
}
static String reverse(String s)
{
return new StringBuffer(s).reverse().toString();
}
Пример вывода:
apros tda adda
7 : 12
after the ostso
11 : 14
att feref
5 : 8
Все вышеперечисленное неверны.
PS: Я знаю, что это не эффективный алгоритм.
Это домашнее задание? –
звучит как домашнее задание;) –
У меня возникли проблемы с поиском ошибки при просмотре; можете ли вы опубликовать еще один образец? – BlackVegetable