天天演算法01 左旋轉字串

2021-09-25 02:52:33 字數 446 閱讀 4930

題目:(微軟面試100題中的第26題)

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

如把字串abcd1234左旋轉4位得到字串1234abcd。

請實現字串左旋轉的函式,要求對長度為n的字串操作的時間複雜度為o(n),空間複雜度為o(1)

解答:逆序排列abcd:abcd1234 → dcba1234;

逆序排列1234:dcba1234 → dcba4321;

全部逆序:dcba4321 → 1234abcd。

#include #include void revise(char *str, int length)

}void leftrotate(char *p, int m)

int main()

演算法 左旋轉字串

對於乙個給定的字串行 s,把其迴圈左移 n 位後的序列輸出。例如字串行 s abcdef 輸出迴圈左移3位後的結果,即 defabc 字串 s 為abcdef,n 3,設x abc,y def,原字串可以表示成xy。此時用t表示翻轉,x的翻轉為xt,即xt cba,同理yt fed,那麼yx xty...

演算法十二 左旋轉字串

題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函式。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 演算法思路 把字串看做由兩段組成,記作xy,題目的意思是要求出yx。記r x 為x字串旋轉...

演算法題 左旋轉字串

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