程式設計題 字串迴圈左移(ROL)

2021-10-06 19:38:32 字數 590 閱讀 2189

題目描述:

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

分析:

用的是最簡單以理解的方法,先將str的後k-len個字元輸入到結果字串,然後再將前k個字元輸入到結果字串。

class

solution

for(

int i=

0;i)return r;}}

;

昨天整半天沒出來的原因是我把結果字串的r型別設定為了char*了, 與函式的返回值型別不匹配。

一些其他的解答方案:

class

solution

};

這裡n = n % len的原因就是比如有n大於len的時候那麼這個迴圈移位的個數就是餘數啦。

迴圈左移字串

題目 字串的左旋轉操作是把字串前面的若干字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如輸入字串 abcdefg 和陣列2,該函式將返回左旋轉2位得到的結果 cdefgab 分析 通過reverse操作 乙個序列abcdefg,如果向左迴圈移動n位,例如2位,則會程式設計 defg...

字串迴圈左移

問題描述 給定乙個字串s 0.n 1 要求把s的前k個字元移動到s的尾部,如把字串 abcdef 前面的2個字元 a 和 b 移動到字串的尾部,得到新的字串 cdefab 即字串迴圈左移k。演算法分析 把abcdef看成是由x ab和y cdef組成,由矩陣轉稚公式 x y yx,如x ab x b...

字串迴圈左移

給定乙個字串s,要求把s的前k個字元移動到s的尾部,如把字串 abcdef 前面的2個字元 a b 移動到字串的尾部,得到新字串 cdefab 稱作字串迴圈左移k位。輸入乙個字串和乙個非負整數n,要求將字串迴圈左移n次。可以使用以下語句實現字串s的輸入 s str input 可以使用以下語句實現非...