字串旋轉

2021-07-24 11:50:54 字數 527 閱讀 9574

字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部。

例如:

aabcd左旋乙個字元得到abcda

aabcd左旋兩個字元得到bcdaa

同理字串右旋操作:

aabcd右旋乙個字元得到daabc

aabcd右旋兩個字元得到cdaab

那麼今天就來說一下字串旋轉中的一些問題:

首先說一下簡單的,先用函式形式實現字串左旋,看上面例子我們可以得到乙個簡單的啟發,左旋一位,就是將a放在後面,左旋兩位就是將aa放在後面,同樣的右旋也是這樣。那麼我們可不可以這樣想,左旋k位,就將前面k個字元看成乙個整體,後面的(len-k)看成乙個整體,再將它們放在陣列裡,那麼問題就變成了交換兩個陣列。

下面就來實現這個想法吧:

reverse(int* arr, int b, int e)

}rightshift(int* arr, int n, int k)

這樣先將兩部分交換,然後再將整體交換即可。

字串旋轉

問題 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef前2位字元移到後面得到字串cdefab。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 看到大多數的帖子都是進行三次旋轉 如 個人感覺這思路確實比較新穎,但是總感覺有點麻煩了,個人思路如下 include inclu...

旋轉字串

給定乙個字元型別的陣列 chas 和乙個整數 size,請把大小為 size 的左半區整 體移到右半區,右半區整體移到左邊。例如,如果把 chas 看作字串為 abcde size 3,調整成 deabc 如果 chas 長度為 n,兩道題都要求時間複雜度為 o n 額外空間複雜度為 o 1 兩種解...

旋轉字串

給定乙個字串和乙個偏移量,根據偏移量旋轉字串 從左向右旋轉 樣例對於字串 abcdefg offset 0 abcdefg offset 1 gabcdef offset 2 fgabcde offset 3 efgabcd 挑戰 在陣列上原地旋轉,使用o 1 的額外空間 解題思路 這次的思路和旋轉...