如何找到按字典顺序排列的最小字符串旋转数?

时间:2014-01-09 16:41:50

标签: string algorithm circular-buffer

如何查找lexicographically minimal string rotation的数量?

例如:

S = abab, N = 2
S = abca, N = 1
S = aaaa, N = 4

我试过Duval的算法,它的工作时间很长。字符串长度为100000000个字符。

1 个答案:

答案 0 :(得分:4)

简单 - 只需确定字符串的最小周期。在最小句点K中是周期性的字符串将产生完全N/K不同旋转的相同(因此按字典顺序相同)字符串,因此无论字典最小值是什么,它都将是{{1不同的轮换。