class Solution { public int countSubstrings(String s) { int count=0; for(int i=0;i=0 && end
В основном существует два типа палиндромов: нечетная длина и четная длина. Палиндромы нечетной длины имеют вид WCW’, например, ПАПА, МАМА, ГОНОЧНЫЙ АВТОМОБИЛЬ. Во всех этих примерах есть один символ, который разделяет эквивалентные символы вокруг него. Чтобы удовлетворить этому условию, мы сравниваем символ с самим собой, а затем продолжаем разворачиваться вокруг него, как показано в коде. Это также относится к отдельным символам, где сам символ является палиндромом, учитывая, что Ws с обеих сторон равен нулю. W’ является обратной стороной W.
С другой стороны, даже для палиндромных строк, таких как bb, aa, вы напрямую сравниваете их с символом рядом с ним. Если это палиндром, символы совпадают, и вы двигаетесь вперед в W’ и назад в W, тем самым сравнивая символы в той же позиции, но в обратном порядке.
Оригинал: “https://dev.to/vbadwaj/palindromic-substrings-53f7”