对于一个字符串,请设计一个算法,将字符串的长度为len的前缀平移到字符串的最后。给定一个字符串A和它的长度,同时给定len,请返回平移后的字符串。
测试样例:
"ABCDE",5,3
解析:解题思路比较简单,假设字符串长度为n,则首先分别逆序0-(len-1)和len-(n-1)的子串,然后见整个字符串再次逆序,即可得到结果。
算法实现:(以下代码本人亲自测试无误)
import java.util.*;
public class Translation {
public String stringTranslation(String A, int n, int len) {
// write code here
char[] c = A.toCharArray();
reverse(c,0,len-1);
reverse(c,len,n-1);
reverse(c,0,n-1);
return String.valueOf(c);
}
public void reverse(char[] c,int left,int right){
while(left<right){
swap(c,left,right);
left++;
right--;
}
}
public void swap(char[] c,int a,int b){
char t = c[a];
c[a] = c[b];
c[b] = t;
}
}