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

 

 

posted on 2018-03-20 20:00  usp10  阅读(99)  评论(0编辑  收藏  举报

导航