劍指Offer 43 左旋轉字串

2021-10-02 06:34:45 字數 1206 閱讀 8007

組合語言中有一種移位指令叫做迴圈左移(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...