对于一个字符串,请设计一个算法,将字符串的长度为len的前缀平移到字符串的最后。
给定一个字符串A和它的长度,同时给定len,请返回平移后的字符串。
测试样例:
输入:"ABCDE",5,3
返回:"DEABC"
class Translation {
public:
//逆序某个区间的字符串
void reverse_my(string &A, int start, int end)
{
while(start<end){
char temp = A[start];
A[start] = A[end];
A[end] = temp;
++start;
--end;
}
}
string stringTranslation(string A, int n, int len) {
// write code here
reverse_my(A, 0, len - 1);
reverse_my(A, len, n - 1);
reverse_my(A, 0, n - 1);
return A;
}
};
看到一位叫“千叶~”的同学,答案是下面这样:
class Translation {
public:
string stringTranslation(string A, int n, int len) {
return (A+A).substr(len,n);
// write code here
}
};