解题思路:
i可以成段成段的跳,而不是简单的i++
class Solution {public String reverseStr(String s, int k) {char[] ch = s.toCharArray();// 1. 每隔 2k 个字符的前 k 个字符进行反转for (int i = 0; i < ch.length; i += 2 * k) {// 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符if (i + k <= ch.length) {reverse(ch, i, i + k - 1);continue;} // 3. 剩余字符少于 k 个,则将剩余字符全部反转reverse(ch, i, ch.length - 1);}return new String(ch);}public void reverse(char[] c, int i, int j) {while(i < j){char tmp = c[i];c[i] = c[j];c[j] = tmp;i++;j--;}}
}