Учитывая строку "ababacba"
, как я могу сгенерировать все возможные подстроки палиндрома?
Я думал о следующем подходе:
- Создание суффиксного дерева с исходной строкой
- Обратная строка
- Создание всехсуффиксы перевернутой строки
- Для каждого из этих суффиксов сравните, перейдя каждый узел в три суффикса, чтобы определить палиндром
Однако, в некоторых случаях это может не сработатьтакой как он обнаруживает baba
как палиндром, когда это не так, потому что чтение abab acba такое же, как чтение baba cba, оба выражения, выделенные жирным шрифтом, имеют abab
и обратноеbaba
.
Следовательно, я думаю, что этот подход недопустим, так как я могу сгенерировать все подстроки палиндрома, используя trie?
Требуемый вывод для строки ababacba
:
ababa
bab
aba
Спасибо.