Два указателя

Палиндромные подстроки

Посчитать количество палиндромных подстрок в строке

Средний

Постановка задачи

Описание (LeetCode)

Дана строка s. Верните количество палиндромных подстрок в этой строке.

Подстрока - это непрерывная часть строки. Палиндром - это строка, которая читается одинаково слева направо и справа налево.

Подстроки считаются разными, если они начинаются или заканчиваются в разных индексах, даже если их содержимое одинаковое.

Пример 1:

s = "abc"

Результат:

3

Пояснение:

Палиндромные подстроки: "a", "b", "c".

Пример 2:

s = "aaa"

Результат:

6

Пояснение:

Палиндромные подстроки: "a", "a", "a", "aa", "aa", "aaa".

Ограничения:

  • 1 <= s.length <= 1000
  • s состоит только из строчных английских букв.

Решение

Эта задача очень похожа на Самую длинную подстроку-палиндром. Там мы искали лучший палиндром, а здесь нужно посчитать все палиндромные подстроки. Четный и нечетный центры, а также само расширение вокруг центра уже разобраны в предыдущей задаче, поэтому здесь сфокусируемся на подсчете.

Перейдите на Premium, чтобы продолжить

Разблокируйте доступ к этой статье и всем остальным материалам с NowInterview Premium

Перейти на Premium