Я только что закончил задание в своей домашней работе, цель которого - найти самый длинный палиндром внутри строки, поэтому, если у вас есть строка «hellomomomkk», то она вернет momom как самый длинный палиндром этой данной строки.
for(int i = 0; i < s.length(); i++) {
for(int j = i; j <= s.length(); j++) {
if(isPalindrome(s.substring(i, j))) {
if(s.substring(i, j).length() > longest.length()) {
longest = s.substring(i, j);
}
}
}
}
return longest;
isPalindrome - это именно то, что он говорит, возвращает true или false, если подстрока является палиндромом. У меня вопрос такой. Почему, когда я делаю
for(int j = i; j <= s.length(); j++)
Мой код работает ?? но если я сделаю
for(int j = i; j < s.length(); j++)
Мой код не работает, и если бы строка была "Hello", j заканчивался бы на 5 , но фактическое количество символов равно 4, начиная с 0? так почему же в коде <= нет ошибки? И почему это работает? </p>