Ctrl K

Различные палиндромы-подпоследовательности

Сложная
Дана строка text, в которой встречаются только буквы a, b, c и d. Подпоследовательность получается из строки вычёркиванием любых символов (возможно, ни одного) без изменения порядка оставшихся. Палиндром читается одинаково слева направо и справа налево. Посчитайте, сколько **различных** непустых строк-палиндромов можно получить как подпоследовательность text. Одна и та же строка, полученная разными вычёркиваниями, считается один раз. Ответ может быть очень большим — верните его по модулю 10⁹ + 7.
Пример 1
text="abca" → 6

Различные палиндромы: a, b, c, aa, aba, aca.

Пример 2
text="dddd" → 4

Подпоследовательностей dd много, но как строка она одна. Итого d, dd, ddd, dddd.

Пример 3
text="cabd" → 4

Повторов букв нет, поэтому палиндромы — только четыре одиночные буквы.

Ограничения
  • 1 ≤ len(text) ≤ 1000
  • text состоит только из букв a, b, c, d
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяПодходит ли строка под шаблон СложнаяПеретасовка разрезами СложнаяСколькими способами вычеркнуть Сложная
загружаем Python…
Вход
text="abca"
Ожидается
6

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 82 теста на сервере, включая скрытые.