題目:給定乙個字串s和整形數字k,需要將2k個字元中前k個字元進行翻轉。當剩餘字元不足k個時,翻轉全部字元;當剩餘的字元數大於等於k並小於2k時,則翻轉前k個字元,剩餘字元保持原狀。字串中只包含英文小寫字母,長度不超過10000.
輸入:字串s和整形數字k
輸出:翻轉後的字串
示例1:輸入:abcdefg 2 輸出:bacdfeg
(我自己補充的)示例2:輸入:abcd 2 輸出:bacd
示例3:輸入 abc 4 輸出:cba
那就2k為乙個單元的翻轉,剩餘的在判斷屬於哪一種情況。
我的**如下:
#include #include using namespace std;
void kreverse(string &str,int start,int k)
if(len-i=k)&&(len-i<2*k)) kreverse(s,i,k);
else ;
cout<
左旋字串k個字元
常用方法左旋字串 include include include pragma warning disable 4996 void left move char str,int len,int steps str i 1 tmp int main 為了使程式簡便,將字串進行拷貝並與字串相連線,組成乙...
字串左旋k個字元
解決這個問題,有兩種解題思路,首先來說第一種思路,先定義乙個指標指向字串的首位址,再用tmp 儲存首元素,依次把元素往前移,最後把tmp裡的值放在空出來的位置,迴圈k次就實現了左旋k個字元 第二種思路,把字串分成兩部分,先逆置前一部分,再逆置剩下的部分,最後整體逆置,也可實現左旋k個字元。左旋k個字...
左旋字串K個字元
實現乙個函式,可以左旋字串中的k個字元。例如 abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 思路就是把字串複製一遍,就有兩個一模一樣的連續字串,無論左旋多少個,都屬於複製過後的這個字串裡面的一部分,所以只需要擷取出來就好了。實現乙個函式,可以左旋字串中的k個字元。include...