循环左移
给定一个字符串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)
晴雪儿 发布了124 篇原创文章 · 获赞 92 · 访问量 2万+ 私信 关注