您的位置:首页 > 职场人生

九章算法面试题55 旋转字符串

2015-05-13 02:01 399 查看

九章算法官网-原文网址

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: