字符:循环左移

馋奶兔 提交于 2020-01-23 13:10:27

循环左移

给定一个字符串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)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!