劍指offer 左旋轉字串

2021-10-01 14:58:13 字數 1452 閱讀 8260

題目描述

組合語言中有一種移位指令叫做迴圈左移(rol),現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s=」abcxyzdef」,要求輸出迴圈左移3位後的結果,即「xyzdefabc」。是不是很簡單?ok,搞定它!

思路1

可以佇列去做

迴圈左移,每pop出乙個隊頭元素,就追加到隊尾

# -*- coding:utf-8 -*-

class

solution

:def

leftrotatestring

(self, s, n)

:# write code here

ifnot s or

not n:

return s

s=list

(s)for i in

range

(n):0)

)return

"".join(s)

思路2

字串拼接

# -*- coding:utf-8 -*-

class

solution

:def

leftrotatestring

(self, s, n)

:# write code here

par1 = s[

:n] par2 = s[n:

]return par2 + par1

思路3

旋轉字串

# -*- coding:utf-8 -*-

class

solution

:def

leftrotatestring

(self, s, n)

:# write code here

ifnot s or

not n:

return s

s=list

(s) l =

len(s)

self.reverse(s,

0,l-1)

self.reverse(s,

0,l-

1-n)

self.reverse(s,l-n,l-1)

return

"".join(s)

defreverse

(self,s,start,end)

:while starts[start]

,s[end]

=s[end]

,s[start]

start+=

1 end-=

1return s

劍指offer 左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!class s...

劍指offer 左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!思路 先擷取下...

劍指offer 左旋轉字串

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!利用線性代數公...