字串左移2019 11 26

2021-09-30 00:23:33 字數 1054 閱讀 4421

題目描述

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

思路:利用左移個數對字串長度求餘,看要左移幾位。

class solution {

public:

string leftrotatestring(string str, int n) {

int m = str.size();

if(m == 0)

return str;

int t = n % m;

if(t == 0)

return str;

string ret;

for(int i = t;i < str.size();i++)

ret += str[i];

for(int i = 0;i < t;i++)

ret += str[i];

return ret;

另一種思路:平移多少位。。利用翻轉的思想,先整體翻轉,在n的左右兩部分各自翻轉。

classtranslation{

public:

stringstringtranslation(string a,intn,intlen)

if(len>n)

exit(-1);

reverseword(a,0,len-1);

reverseword(a,len,n-1);

reverseword(a,0,n-1);

returna;

voidreverseword(string &a,intlow,inthigh)

if(low>=high)

return;

char temp;

while(low temp=a[low];

a[low]=a[high];

a[high]=temp;

low++;

high--;

字串左移

字串迴圈左移 20分 輸入乙個字串和乙個非負整數n n,要求將字串迴圈左移nn次。輸入在第1行中給出乙個不超過100個字元長度的 以回車結束的非空字串 第2行給出非負整數nn。在一行中輸出迴圈左移n n次後的字串。hello world 2llo world he參考解答 include inclu...

字串左移

時間限制 1 sec 記憶體限制 2 mb 提交 27 解決 10 標籤提交 統計討論版 給乙個長度等於n的字串,求它左移m位後的字串。每組資料兩行,第一行n m,0第二行給出字串,字串只包含大小寫字母。輸出左移後的結果。6 3netcan 6 2netcan 10 4 helloworld can...

迴圈左移字串

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