https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
这道是在上一道简单题的基础上打出来的,难就难在对每个指针的推敲上。这可是硬解出来的,我可太难了…
class Solution {
public String reverseStr(String s, int k) {
char[] ch = s.toCharArray();
char temp;
int len = ch.length;
for(int i = 0; len - i * 2 * k >= k;i++){
for(int j =0; j < k/2; j++){
temp = ch[i * 2*k + j];//首指针
System.out.println(temp);
ch[i * 2*k + j] = ch[i * 2*k + k -1-j];//尾指针
System.out.println(ch[i * 2*k + j]);
ch[i * 2*k + k -1-j] = temp;
}
}
System.out.println(len % k);
if(len % (2*k) < k && len % k >0){
for(int i = 0; i < (len % k)/2; i++){
//剩余k个
System.out.println("111");
temp = ch[len - 1 - (len%k-1)+i];//首指针
ch[len - 1 - (len%k-1)+i] = ch[len - i-1];
ch[len - i-1] = temp;//尾指针
}
}
String str = new String(ch);
return str;
}
}