Для строки длиной N, содержащей символы [AZ], как определить самый длинный палиндром для отдельного символа?
Я проиллюстрирую это на примере:
Данная строка:JOHNOLSON
Анализируя строку, мы обнаруживаем, что у нас есть палиндром с символом O
, такой что строка выглядит как J
O
HN
O
LS
O
N
.Палиндром для O
имеет длину 7, по существу похожую на O
--
O
--
O
.Кроме того, обратите внимание, что есть палиндром с N
, но он имеет только длину 6.
Другой пример, учитывая строку: ABCJOHNOLSON
дает тот же результат, что и выше, с палиндромом O
Длина 7 выглядит как O
--
O
--
O
.
Однако сзаданная строка ABCJOHNOLSONDA
, самый длинный отдельный символ палиндрома имеет длину 14 с символом A
, похожим на A
------------
A
.
Другие простые примеры:
ABA
-> A
-
A
(длина 3)
ABAXYZ
-> A
-
A
(длина 3)
ABAXYZA
-> A
---
A
(длина 5), а не длина 7, так как A
-
A
---
A
не является палиндромом для буквы A
.
Обратите особое внимание на последний пример, поскольку он иллюстрирует один из тонких нюансов пРОБЛЕМА.