Member 13753596 Ответов: 2

Написать на Java программу, чтобы проверить строку-палиндром, используя рекурсию


упаковка beginnersbook.com;
импорт java.util.Сканер;
класс PalindromeCheck
{
//Мой метод проверки
public static boolean isPal(String s)
{ // если длина равна 0 или 1, то строка является палиндромом
если(S.длина() == 0 || С. длина() == 1)
вернуть true;
если(S.используя метод charat(0) == ы.используя метод charat(С. Длина (м)-1))
/* проверьте наличие первого и последнего символа строки:
* если они одинаковы, то сделайте то же самое для подстроки
* с удалением первого и последнего символа. и продолжайте в том же духе
* до тех пор, пока строка не завершится или условие не будет выполнено
* Вызов самой функции: рекурсия
*/
вернуться isPal(С. подстрока(1, С. Длина (м)-1));

/* Если управление программой доходит до этого оператора, то это означает
* строка не является палиндромом, следовательно, возвращает false.
*/

Что я уже пробовал:

мне нужна лучшая программа для этого вопроса со сложностью во времени и пространстве

Richard Deeming

Ваше домашнее задание предназначено для проверки того, что вы знаете, а не того, насколько хорошо вы просите незнакомцев в интернете сделать вашу работу за вас.

Попробуйте сами, и вы, вероятно, обнаружите, что это не так сложно, как вы думаете. В конце концов, он будет основан на темах, которые вы недавно рассмотрели в своем курсе.

Если вы действительно не знаете, с чего начать, то поговорите со своим учителем. За это им и платят!

CPallini

Код выглядит нормально. В чем проблема?

2 Ответов

Рейтинг:
2

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Рейтинг:
0

Patrice T

Я бы попробовал заменить его

return isPal(s.substring(1, s.length()-1));

с
return isPal(s.substring(1, s.length()-2));

Цитата:
мне нужна лучшая программа для этого вопроса со сложностью во времени и пространстве

Если рекурсия не предназначена для обучения, то это плохое решение, цикл будет более эффективным.