//三步翻转法
public void rotateString(char[] str, int offset) {

        if (str==null || str.length == 0) return;
         int len = str.length;
         offset %= len;

         swap(str, 0, len - 1 - offset);
         swap(str, len - offset, len - 1);
         swap(str, 0, len - 1);
    }
    public void swap(char[] str, int start, int end) {
        while (start < end) {
        char tmp = str[start];
        str[start] = str[end];
        str[end] = tmp;
        start++;
        end--;
        }
    }

results matching ""

    No results matching ""