1. 问题描述:
给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地
旋转字符串(从左向右旋转)。
2.样例:
样例 1:
输入: str="abcdefg", offset = 3
输出: str = "efgabcd"
样例解释: 注意是原地旋转,即str旋转后为"efgabcd"
样例 2:
输入: str="abcdefg", offset = 0
输出: str = "abcdefg"
样例解释: 注意是原地旋转,即str旋转后为"abcdefg"
3.代码:
class Solution:
"""
@param str: An array of char
@param offset: An integer
@return: nothing
"""
# Method 1
def rotateString(self, s, offset):
# write your code here
if len(s) == 0 or offset == 0:
return s
n = offset % len(s)
ss = s + s
ss = ss[len(s) - n:2 * len(s) - n]
for i, x in enumerate(ss):
s[i] = x
# Method 2
def rotateString2(self, s, offset):
if len(s) == 0 or offset == 0:
return s
for i in range(offset % len(s)):
s.insert(0, s.pop())