Рассмотрим строку длины n (1 ‹= n ‹= 100000). Определите его минимальный лексикографический оборот. Например, обороты строки «алабала»:
alabala
labalaa
abalaal
balaala
alaalab
laalaba
aalabal
and the smallest among them is “aalabal”.
Этот вопрос уже задавался в стеке, но я задаю его, поскольку нет четкого решения. До сих пор я добился следующего прогресса.
1. Возьмите S, соедините с reverse(S)..let P=S+reverse(S)
2.Создайте массив суффиксов вышеуказанной строки P
Теперь мой вопрос: если я выберу первую строку в массиве суффиксов size> strlen(S)
, тогда префикс размера strlen(S)
этой строки будет минимальным поворотом данной строки S.
Верен ли мой вывод?