class Solution:
def rotateString(self, s,
offset):
if not s:
return s
n =
len(s)
offset =
offset % n
if not s:
return s
for i
in range(
offset):
t = s.pop()
s.insert(
0,t)
if not s:
return s
n =
len(s)
offset =
offset % n
if not offset:
return s
temp_pre = s[-
offset:]
temp_las = s[
0:n-
offset]
m =
len(temp_pre)
for i
in range(
len(temp_pre)):
s[i] = temp_pre[i]
for i
in range(
len(temp_pre), n):
s[i] = temp_las[i - m]
if not s:
return s
n =
len(s)
offset =
offset%n
if not offset:
return s
temp = s*
2
for i
in range(n):
s[i] = temp[n-
offset+i]
if not s:
return s
n =
len(s)
offset =
offset % n
if not offset:
return s
s[
0:n-
offset], s[-
offset:] = s[-
offset:], s[
0:n-
offset]
if not s:
return s
n =
len(s)
offset =
offset % n
if not offset:
return s
s[
0:n-
offset] = reversed(s[
0:n-
offset])
s[-
offset:] = reversed(s[-
offset:])
s[::] = reversed(s)