Ctrl K

Палиндром на кодовом колесе

Средняя
Строка text набрана на кодовом колесе из 26 строчных латинских букв, расположенных по кругу: за a идёт b, за b — c, …, за z снова a. Один поворот меняет одну любую букву строки на соседнюю по кругу — следующую или предыдущую. Например, a превращается в b или в z, а z — в a или в y. Всего можно сделать не больше turns поворотов (одну букву разрешено крутить несколько раз). После поворотов выберите из строки подпоследовательность — несколько букв в исходном порядке, не обязательно подряд, — которая читается одинаково слева направо и справа налево. Верните наибольшую возможную длину такой подпоследовательности.
Пример 1
text="abcxa", turns=1 → 4

Повернём c на одно деление назад, к b: получится abbxa, и в ней есть подпоследовательность-палиндром abba длины 4.

Пример 2
text="azza", turns=0 → 4

Поворачивать нельзя, но строка уже палиндром целиком.

Пример 3
text="mz", turns=5 → 1

Между m и z 13 делений в любую сторону круга — бюджета не хватает, так что ответ — одна буква.

Ограничения
  • 1 ≤ len(text) ≤ 200
  • 0 ≤ turns ≤ 200
  • text состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный зеркальный кусок СредняяВсе правильные скобочные строки СредняяНаименьшее число правок СредняяСколькими способами прочитать шифр СредняяСплести две строки Средняя
загружаем Python…
Вход
text="abcxa", turns=1
Ожидается
4

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