字符串旋转问题最小数量的证明
Proof for minimum number of String Rotation Problem
假设我们一次旋转一个字符串 ("abcd" -> "bcda")。经过 t 次旋转后,我们得到相同的字符串。令 t 为此类旋转的最小次数。
例如:
- 对于 S = "aaaa",t = 1
- 对于 S = "abcabc",t = 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
假设我们一次旋转一个字符串 ("abcd" -> "bcda")。经过 t 次旋转后,我们得到相同的字符串。令 t 为此类旋转的最小次数。
例如:
- 对于 S = "aaaa",t = 1
- 对于 S = "abcabc",t = 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