左旋字串

2021-06-28 13:37:50 字數 711 閱讀 5198

1.問題描述

字串的左旋操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如輸入字串"abcdefg"和數字2,該函式將返回左旋轉2位得到的結果「cdefgab」。(來自《劍指offer》)

2.分析

其實和翻轉單詞順序差不多,我們可以先將前面2位翻轉得到 ba,在將後面5位翻轉得到 gfedc ,然後再將整個字串翻轉得到 cdefgab。

3.**

void reverse(char* begin,char* end)

while (begin < end)

}void leftrotatestr(char* str,int num,int length)

char *begin = str;

char *end = str + length - 1;

char *aheadtail = str + num - 1;

char *behindstart = str + num;

reverse(begin, aheadtail);

reverse(behindstart, end);

reverse(begin, end);

}

左旋字串

定義字串左旋轉操作 把字串前面的若干個字元移動到字串尾部,如把字串 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...

左旋字串

題目 實現字串左旋k個字元,如 abcdef 左旋乙個字元,變為 bcdefa 左旋兩個字元,變為 cdefab 分析 首先需考慮左旋的字元個數與字串的長度之間的關係,在本題中,字串長度為6,如果k為7,則相當 於左旋乙個字元,所以,要對k進行處理,得到有效的旋轉次數。1,方法一 迴圈前移字元 分析...