public class LeftReverseString58 {
public static void main(String[] args) {
String str = "abcdefg";
System.out.println(leftReverse(str, 3));
}
private static String leftReverse(String str, int n) {
char[] arr = str.toCharArray();
reverse(arr, 0, n - 1);
reverse(arr, n, arr.length - 1);
reverse(arr, 0, arr.length - 1);
return new String(arr);
}
private static void reverse(char[] arr, int low, int high) {
while (low < high) {
swap(arr, low++, high--);
}
}
private static void swap(char[] arr, int i, int j) {
char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
解释:逆转左边,逆转右边,整体逆转,bingo