字符串旋转问题最小数量的证明

Proof for minimum number of String Rotation Problem

假设我们一次旋转一个字符串 ("abcd" -> "bcda")。经过 t 次旋转后,我们得到相同的字符串。令 t 为此类旋转的最小次数。

例如:

  1. 对于 S = "aaaa",t = 1
  2. 对于 S = "abcabc",t = 3
  3. 对于 S = "abcdef",t = 6

现在我的问题是,是否存在满足此条件的任何字符串:t > len(S)/2 和 t < len(S)?如果不能请解释一下原因?

让我们假设你可以将你的字符串旋转 t 次并且它将是相同的字符串。然后,如果你将它旋转另一个 len(S)-t 次,你肯定会得到相同的字符串。如果我们假设 t>len(S)/2 我们直接得到 len(S)-t<len(S)/2,所以最小旋转总是 <=len(S)/2