循环左移
给定一个字符串S[0…n-1],要求把S的前k 个字符移动到S的尾部 abcdefg将前2位移动到尾部cdefgab ## 暴力求法 前k个每个依次前移 时间:O(kn) 空间:O(1)利用反转
反转
:X=abc 记 X^=cba
X为需要后移的,Y为剩下的部分
XY如何得到YX:(X^ Y^) ^=YX
将abcdefg前4位移动到尾部
- X=abcd,X^=dcba
- Y=efg,Y^=gfe
- (X^ Y^) = dcbagfe
- (X^ Y^) ^=efgabcd
复杂度O(2n)
来源:CSDN
作者:晴雪儿
链接:https://blog.csdn.net/qq_42146775/article/details/103754458