Я думаю, что ваш код немного излишне сложен, вы используете индексы, чтобы делать то, что вы можете делать с подстрокой в Java.Кроме того, у вас есть много случаев для четных или нечетных чисел, которых вы могли бы избежать, просто рассматривая их в базовом случае.Я постарался сохранить ваш подход и максимально сократить код.Я думаю, что намного чище.В базовом случае, если число нечетное, оно заканчивается на 1, а если оно четное, оно заканчивается на 2.
public boolean isPalindrome(String string)
{
if (string.length() > 2) {
if (string.charAt(0) == string.charAt(string.length() - 1)) {
return this.isPalindrome(string.substring(1, string.length() - 1));
} else {
return false;
}
} else if (string.length() == 1) {
return true;
} else {
if (string.charAt(0) == string.charAt(1)) {
return true;
} else {
return false;
}
}
}