8. 旋转字符串
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)
样例
对于字符串 "abcdefg"
.
offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"
挑战
在数组上原地旋转,使用O(1)的额外空间
题解
python的字符串并不能修改,所以想在原字符串上修改根本不可能,后面发现oj传入的是列表,那就可以实现了。
我的方法是把后面的插入到前面,然后最后把后面的pop掉而已。斌爷说了一个方法,以前知道的,只是忘记了,就是
做3次旋转,前offset个,后offset个旋转,然后再来一次大旋转就可以
def rotateString(str, offset): offset %= len(str) for i in range(0, offset): str.insert(i, str[-offset+i]) for i in range(0, offset): str.pop() return str