字符:循环左移

循环左移

给定一个字符串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位移动到尾部

  1. X=abcd,X^=dcba
  2. Y=efg,Y^=gfe
  3. (X^ Y^) = dcbagfe
  4. (X^ Y^) ^=efgabcd

复杂度O(2n)

发布了124 篇原创文章 · 获赞 92 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42146775/article/details/103754458
今日推荐