1 public class Solution { 2 /** 3 * @param str: an array of char 4 * @param offset: an integer 5 * @return: nothing 6 */ 7 public static char[] rotateString(char[] str, int offset) { 8 if (str == null || str.length == 0){ 9 return str; 10 } 11 int len = str.length; 12 offset %= len; 13 reverse(str, 0, len - offset - 1); 14 reverse(str, len - offset, len - 1); 15 reverse(str, 0, len - 1); 16 return str; 17 } 18 public static void reverse(char[] str, int start, int end){ 19 while (start < end){ 20 char temp = str[start]; 21 str[start] = str[end]; 22 str[end] = temp; 23 start++; 24 end--; 25 } 26 } 27 }