LintCode算法题第八题:旋转字符数组
描述:给定一个字符数组 s
和一个偏移量,根据偏移量原地旋转字符数组(从左向右旋转)。
提示:
offset >= 0
s 的长度 >= 0
原地旋转意味着需要在函数中更改字符数组 s。你不需要返回任何东西。
这个算法题我们不需要写任何返回值,只需要在变量s中进行修改即可
这里for循环次数太多会有MemoryError的错误,内存溢出,我们只需要让offset取余于s,求出最少次数再进行遍历,那次数最长也不超过字符串s的长度
for循环中进行旋转操作即可
Python代码:
class Solution:
"""
@param s: An array of char
@param offset: An integer
@return: nothing
"""
def rotate_string(self, s, offset):
# write your code here
if s:
offset%=len(s)
for i in range(offset):
s[0],s[1:]=s[-1],s[:-1]
成绩也蛮不错的~~~