1. 程式人生 > >字串移位 類似[LintCode]8

字串移位 類似[LintCode]8

對於一個字串,請設計一個演算法,將字串的長度為len的字首平移到字串的最後。

給定一個字串A和它的長度,同時給定len,請返回平移後的字串。

測試樣例: "ABCDE",5,3 返回:"DEABC" 思路:1、將str[0.....i]部分的字元逆序              ABC DE->CBA DE            2、將str[i+1.....N-1]部分的字元逆序              CBA DE->CBA ED            3、將str整體的字元逆序
             CBAED->DEABC
class Translation {
public:
    string stringTranslation(string A, int n, int len) {
        reverse(A,0,len-1);
        reverse(A,len,n-1);
        reverse(A,0,n-1);
        return A;
    }
    void reverse(string &str,int start,int end) {  //翻轉字串  
        while(start<end){  
            swap(str[start++],str[end--]);
        }  
    } 
};