九章算法官网-原文网址
http://www.jiuzhang.com/problem/55/
题目
给一个字符串和一个旋转的偏移量offset,将字符串循环右移offset位。
如:"abcdefg" 循环右移 4位之后变为了:"defgabc"
要求做到O(1)的额外空间耗费,O(n)的时间
在线测试本题
http://lintcode.com/problem/rotate-string/
解答
采用三步反转法。
以S="abcdefg" offset=4为例子
首先将字符串看做:"abc"+"defg"
先整体反转:得到 "gfed" + "cba"
然后各自反转:得到“defg” + "abc" = "defgabc"
时间复杂度O(n),额外空间复杂度O(1)
时间: 2024-08-01 22:16:29