题目
解析
class Solution {
public String reverseStr(String s, int k) {
char[] cs = s.toCharArray();
int len = cs.length;
for (int L = 0; L < len; L = L + k * 2) { // L每次移动2k
int R = L + k - 1;
reverse(cs, L, Math.min(R, len - 1)); // 判断R和实际边界大小,如果R超过实际就取边界
}
return String.valueOf(cs);
}
public void reverse(char[] cs, int L, int R) { // 反转函数,反转字符串
while (L < R) {
char c = cs[R];
cs[R] = cs[L];
cs[L] = c;
L++;
R--;
}
}
}