組合語言中有一種移位指令叫做迴圈左移(rol),現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s=」abcxyzdef」,要求輸出迴圈左移3位後的結果,即「xyzdefabc」。是不是很簡單?ok,搞定它!
解法一:在原字串上修改
「abcdef」迴圈左移3位
前3位逆序,後3位逆序,整體再逆序。
「cbafed」-> 「defabc」
三個字串翻轉操作
class
solution
:def
leftrotatestring
(self, s, n)
:# write code here
length =
len(s)
if n > length:
return
"" s =
list
(s) self.reverse_str(s,
0, n -1)
self.reverse_str(s, n,
len(s)-1
) self.reverse_str(s,0,
len(s)-1
)return
''.join(s)
defreverse_str
(self, s, start, end)
:while start < end:
tmp = s[start]
s[start]
= s[end]
s[end]
= tmp
start +=
1 end -=
1s = solution(
)res = s.leftrotatestring(
'abcxyzdef',3
)print
(res)
字串重新拼接
# -*- coding:utf-8 -*-
class
solution
:def
leftrotatestring
(self, s, n)
:# write code here
return s[n:
]+ s[
:n]
劍指offer 43 左旋轉字串
題目 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!思路 首先取得字串...
劍指offer43左旋轉字串
組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!思路 前n個字串進行翻轉...
劍指offer 43左旋轉字串
題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!class s...