Solution
public class Solution {
public String reverseStr(String s, int k) {
if (s == null || s.length() == 0)
return s;
char[] c = s.toCharArray();
int times = c.length / (2 * k);
int i;
for (i = 1; i <= times; i++) {
reverse(c, (i - 1) * 2 * k, k);
}
if (c.length + k < i * 2 * k) {
reverse(c, (i - 1) * k, k);
} else if (c.length < i * 2 * k) {
reverse(c, i * 2 * k, k);
}
return String.valueOf(c);
}
public void reverse(char[] c, int l, int length) {
char tmp;
int r = l + length - 1;
while (l < r) {
tmp = c[l];
c[l] = c[r];
c[r] = tmp;
l++;
r--;
}
}
}
Problem#1
1. 没有考虑清楚