對(duì)于一個(gè)字符串累驮,請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法惩系,將字符串的長度為len的前綴平移到字符串的最后。
給定一個(gè)字符串A和它的長度防楷,同時(shí)給定len牺丙,請(qǐng)返回平移后的字符串。
測試樣例:
輸入:"ABCDE",5,3
返回:"DEABC"
class Translation {
public:
//逆序某個(gè)區(qū)間的字符串
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;
}
};
看到一位叫“千葉~”的同學(xué)复局,答案是下面這樣:
class Translation {
public:
string stringTranslation(string A, int n, int len) {
return (A+A).substr(len,n);
// write code here
}
};