翻轉字串和左旋轉字串

2021-09-07 17:55:29 字數 808 閱讀 9507

左旋**

class

solution

void reverse(string &str,int begin,int

end)

};

翻**

class

solution

}int begin = 0

;

intend;

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

reverse(str,begin,length-1);//

最後乙個空白的部分實際上是沒有翻轉,這一步必須再進行翻轉

return

str;

}void reverse(string &str,int begin,int

end)

};

左旋轉在abcdefg,7的時候出問題

翻轉字串在輸入例子為乙個空格的字串的時候出問題,即" "

兩個出問題其實都是在reverse函式出的問題。reverse(str,0,length-1-n)這行**相當於reverse(str,0,-1),但(begin + end)/2得到的結果不是-1,而是0。因為i是int型,-0.5的int型是0,而不是-1。

當字串為乙個空格的時候,reverse(str,begin,end)是reverse(str,0,-1)和左旋轉是一樣的問題。

這兩個都會造成blank[i] - 1結果為-1,造成陣列越界

int型對小數是取整的,1.7的int是1,不是2,-1.7的int是-1,不是-1。

reverse的正確寫法:

翻轉字串 VS 左旋轉字串

題目一 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 第一步 翻轉句子中的所有字元,比如翻轉 i am a student.中的所有字元得到 tneduts a...

new 翻轉字串 左旋轉字串

輸入乙個英文句子,翻轉句子中單詞的順序,單詞順序不變,標點符號和簡單字母一樣處理,例如 輸入 i am a student 輸出 student.a am i 此類題目很常見 翻轉句子中所有字元 再反轉每個單詞中字元的順序 有經驗的面試官如果看到應聘者幾乎不假思索的想出一道比較巧妙的演算法,就會覺得...

左旋轉字串(字串)

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