class Solution {
public String reverseStr(String s, int k) {
char[] arr = s.toCharArray();
//按0-2k-4k-6k等进行反转
for(int start = 0;start < arr.length-1;start += 2*k){
int i = start;
//最后的情况 要么按全反转(arr.length-1),要么按k反转(start+k-1)
int j = Math.min(start + k - 1,arr.length-1);
while(i < j){
char tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
return new String(arr);
}
}
给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k
最新推荐文章于 2024-07-18 09:13:48 发布