python lintcode8 旋轉字串

2021-08-20 22:30:49 字數 932 閱讀 4976

offset=0 => "abcdefg"

offset=1 => "gabcdef"

offset=2 => "fgabcde"

offset=3 => "efgabcd"

這一題的話如果不考慮只使用o(1)的額外空間將會非常簡單,直接str+str把自己連起來然後根據offset擷取一下就行了。

如果只用o(1)額外空間的話,就要有乙個巧妙的思路了,reverse三次這個字串可以達到這個效果:

class solution:

"""@param str: an array of char

@param offset: an integer

@return: nothing

"""def rotatestring(self, str, offset):

# write your code here

def reverse(s,start,end):

while(starttemp=s[start]

s[start]=s[end]

s[end]=temp

start+=1

end-=1

if(str==none or len(str)==0): return str

length=len(str)

offset=offset%len(str)

reverse(str,0,length-offset-1)

reverse(str,length-offset,length-1)

reverse(str,0,length-1)

return str

s = solution()

print(s.rotatestring(['a','b','c'],1))

python lintcode 433島嶼的個數

給乙個01矩陣,求不同的島嶼的個數。0代表海,1代表島,如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。您在真實的面試中是否遇到過這個題?yes 樣例 在矩陣 1,1,0,0,0 0,1,0,0,1 0,0,0,1,1 0,0,0,0,0 0,0,0,0,1 中有 3 個島.cl...

python lintcode135 數字組合

給出乙個候選數字的set c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 給出候選set 2,3,6,7 和目標數字7 返回 7 2,2,3 題目意思很明確了,這就是乙個排列組合...

python lintcode114 不同的路徑

有乙個機械人的位於乙個 m n 個網格左上角。機械人每一時刻只能向下或者向右移動一步。機械人試圖達到網格的右下角。問有多少條不同的路徑?n和m均不超過100 您在真實的面試中是否遇到過這個題?是 給出 m 3和 n 3,返回6.給出 m 4和 n 5,返回35.那麼這一題的思路就是 到某個結點的方案...