字串移位 類似[LintCode]8
阿新 • • 發佈:2019-01-22
對於一個字串,請設計一個演算法,將字串的長度為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--]); } } };