对于一个字符串,请设计一个算法,将字符串的长度为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--]);
}
}
};