剑指 Offer 58 - II. 左旋转字符串

  1. class Solution {
  2. public String reverseLeftWords(String s, int n) {
  3. if (s == null)
  4. return null;
  5. char[] str = s.toCharArray();
  6. n %= s.length();
  7. reverse(str, 0, s.length() - 1);
  8. reverse(str, 0, s.length() - 1 - n);
  9. reverse(str, s.length() - n, s.length() - 1);
  10. return new String(str);
  11. }
  12. private void reverse(char[] str, int start, int end) {
  13. while (start < end) {
  14. char temp = str[start];
  15. str[start] = str[end];
  16. str[end] = temp;
  17. ++start;
  18. --end;
  19. }
  20. }
  21. }