Я пытаюсь написать метод, который проверяет, является ли строка палиндром. Это то, что я до сих пор:Отладка метода рекурсивного палиндрома
public static boolean isPalindrome(String word) {
boolean flag = false;
if (word.length() < 2) {
flag = true;
} else if (word.charAt(0) == word.charAt(word.length() - 1)) {
flag = isPalindrome(word.substring(1, word.length() - 2));
}
return flag;
}
Проблема Я бег в этом методе последовательно возвращает истину для строк вида "aaaba"
, где пара, которая должна привести к ложному быть распространяющимися обратно через стек находится в середине строки. Я ударяю головой о стену, пытаясь понять, где моя ошибка, но безрезультатно. Может быть, свежий набор глаз увидит то, что мне не хватает?
Попробуйте использовать некоторые операторы для какие персонажи сравниваются каждый раз. Это должно помочь вам сузить область проблем. – csmckelvey
Все это в отличие от 'return word.equals (new StringBuilder (word) .reverse(). ToString());'? –
@JoshM Это полезное упражнение для рекурсии ... – Oleksiy