題目描述
組合語言中有一種移位指令叫做迴圈左移(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,搞定它!利用線性代數公...