左旋字串

2021-08-25 14:04:24 字數 707 閱讀 4512

題目:

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

思路:

舉個例子比較好說明這個問題,s=「abcxyzdef」左旋3位的結果為「xyzdefabc」。我們可以借助先部分逆序,最後整體逆序來得到左旋的結果。

逆序[0, n-1],得到cbaxyzdef

逆序[n, length-1],得到cbafedzyx

逆序[0, length-1],得到xyzdefabc

擴充套件:假設這道題讓我們求右旋n位之後的結果,s=「abcxyzdef」右旋3位的結果為「defabcxyz」.

逆序[0, length-n-1],得到zyxcbadef

逆序[length-n, length-1],得到zyxcbafed

逆序[0, length-1],得到defabcxyz

class

solution

void rerverse(string& s, int left, int right)

}};

左旋字串

1.問題描述 字串的左旋操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如輸入字串 abcdefg 和數字2,該函式將返回左旋轉2位得到的結果 cdefgab 來自 劍指offer 2.分析 其實和翻轉單詞順序差不多,我們可以先將前面2位翻轉得到 ba,在將後...

左旋字串

定義字串左旋轉操作 把字串前面的若干個字元移動到字串尾部,如把字串 abcdef 左旋轉 2位得到字串 cdefab 請實現字串左旋轉的函式,要求對長度為 n 的字串操作的時間複雜度為 o n 空間複雜度為 o 1 author administrator public class leftshif...

左旋字串

題目要求 實現乙個函式,可以左旋字串中的k個字元。右旋字串同理 例如 abcde左旋兩個字串得到cdeab 如下 編譯環境為vs2013 define crt secure no warnings 1 include include include include 三步翻轉法 void revers...