题目:
输入: s = "abcdefg", k = 2
输出: "bacdfeg"
这道题做的时候试图想用枚举做,但是做到最后发现只能做对一半。。。
思路:每次反转2k,0,2k,4k,6k......,如果字符串不够,就不反转
public String reverseStr(String s, int k) {
char[] chs=s.toCharArray();
for(int start=0;start<chs.length-1;start=2*k+start){
int i=start,j=Math.min(start+k-1,chs.length-1);
while(i<j){
char temp=chs[i];
chs[i]=chs[j];
chs[j]=temp;
i++;
j--;
}
}
return new String(chs);
}