Minimum Rotation / Booth

Minimum Rotation finds the lexicographically smallest cyclic rotation in linear time using Booth's algorithm.

Import and API

import atcoder/extra/string/minimum_rotation

proc minimumRotationIndex(s): int
proc minimumRotation(s): auto
proc maximumRotationIndex(s): int
proc maximumRotation(s): auto

Example

doAssert minimumRotation("bbaaccaadd") == "aaccaaddbb"

Complexity