public class Solution {
/**
* 问题描述:把一个字符串或者char数组,
* 左侧4位字符和后面的字符替换位置
*/
public static void main(String[] args) {
String str = "abcdef";
char[] arry = str.toCharArray();
int left = 4;
reverse(arry, 0, left-1);
reverse(arry, left, arry.length-1);
reverse(arry, 0, arry.length-1);
System.out.println(arry);
}
public static void reverse(char[] arry, int start, int end) {
for(int i=start,j=end;i<=j;i++,j--) {
char t = arry[i];
arry[i] = arry[j];
arry[j] = t;
}
}
}
解题思路:
以abcdef为例,将左4个字符和后面两个字符替换。
先将前4个字符,abcd —> dcba。(a和d替换,b和c替换)
再将后2个字符,ef—> fe
再将 dcbafe —> efabcd