LintCode刷題之路(八) 旋轉字串

2021-08-19 23:38:42 字數 1316 閱讀 8008

給定乙個字串和乙個偏移量,根據偏移量旋轉字串(從左向右旋轉)

樣例 對於字串 「abcdefg」.

offset=0 => 「abcdefg」

offset=1 => 「gabcdef」

offset=2 => 「fgabcde」

offset=3 => 「efgabcd」

挑戰 在陣列上原地旋轉,使用o(1)的額外空間

思路:

①新建立乙個字串陣列suffix,依次存放倒數的offset個數;

②將原字串陣列str中的元素,依次向後移動offset個位置

③suffix中存放的元素,全部轉移到str的前offset個位置

需要注意:如果offset>str的長度,要對offset取模;

off = offset%str.size()

c++:

class

solution

for(i=size-off-1;i>=0;i--)

for(i=0;istr[i] = suffix[i];}}

}};

py3:

pothon 中 的 for i in range(4,6) 指的是4,5 即4<=i<6

容易出錯

class

solution:

""" @param str: an array of char

@param offset: an integer

@return: nothing

"""defrotatestring

(self, str, offset):

# write your code here

size = len(str)

if size == 0:

return

off = offset%size

if off == 0:

return

if off!=0:

suffix =

for i in range(size-off,size):

# todo: write code...

j = size-off-1

while j>=0:

str[j+off] = str[j]

j -= 1

for k in range(0,off):

str[k] = suffix[k]

LintCode刷題 旋轉字串

描述 給定乙個字串 以字元陣列的形式給出 和乙個偏移量,根據偏移量原地旋轉字串 從左向右旋轉 樣例 輸入 str abcdefg offset 3 輸出 str efgabcd 樣例解釋 注意是原地旋轉,即str旋轉後為 efgabcd 解題 難點分析 字串為 的情況 偏移量 offset 0 偏移...

LintCode刷題之路(四) 醜數

設計乙個演算法,找出只含素因子2,3,5 的第 n 小的數。符合條件的數如 1,2,3,4,5,6,8,9,10,12 樣例 如果n 9,返回 10 挑戰 要求時間複雜度為o nlogn 或者o n 思路 根據醜數的定義可知,每乙個醜數都是由前面的醜數生成。例如 2是由1 2得來,3是由1 3得來。...

lintcode刷題 搜尋旋轉排序陣列

原題如下 搜尋旋轉排序陣列 假設有乙個排序的 按未知的旋轉軸旋轉的 陣列 比如,0 1 2 4 5 6 7 可能成為 4 5 6 7 0 1 2 給定乙個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回 1。你可以假設陣列中不存在重複的元素。您在真實的面試中是否遇到過這個題?ye...