Я новичок в использовании рекурсии и пытаюсь заставить работать мою программу на палиндроме. Вот что я пытаюсь сделать: если символ не равен, я возвращаю 0. Если нет, я продолжаю повторяться, увеличивая i и уменьшая j. Если i больше не меньше j, я хочу сказать, что рекурсия выполнена, поэтому я хочу вернуться к тому, что слово является палиндромом (= 1).
Но когда я ввожу слово, которое не является палиндромом, я правильно возвращаю 0. (Я вижу это, когда отлаживаю). Но ... затем, в конце, он также возвращает 1. Я предполагаю, что это как-то связано с тем фактом, что рекурсия означает, что программа продолжает работать, а 0 возвращается к тому, что я ранее делал ранее. Но я хочу, чтобы 0 пошел на самый верх.
Есть ли способ обойти эту проблему? Или я что-то не так делаю? Извините, если это действительно просто.
Заранее спасибо. Вот мой код:
public static int checkIfPalindrome(String s, int i, int j) {
if (i<j) {
if (s.charAt(i) == s.charAt(j)) {
checkIfPalindrome(s, i+1, j-1);
}
else {
return 0;
}
}
return 1;
}