541. 反转字符串 II
给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
示例:
输入: s = "abcdefg", k = 2
输出: "bacdfeg"
解析
直接在k范围内双指针翻转就好了
class Solution {
public String reverseStr(String s, int k) {
//直接在k范围内双指针反转就好了
char[] vals = s.toCharArray();
int len = s.length();
for(int i = 0 ;i < len;){
int start = i;
int end = Math.min(i+k-1,len-1);
while(start<end){
char temp = vals[start];
vals[start++] = vals[end];
vals[end--] = temp;
}
i+=2*k;
}
return new String(vals);
}
}
注意:本文归作者所有,未经作者允许,不得转载