反转字符串
给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
示例:
输入: s = “abcdefg”, k = 2
输出: “bacdfeg”
思路
每次迭代2*k个字符,如果剩余的字符少于k则将其全部反转,否则反转前k个
string reverseStr(string s, int k){
int length = s.size();
for(int i = 0; i < length; i += 2 * k){
if(i + k < length){
reverse(s.begin() + i, s.begin() + i + k);
continue;
}
reverse(s.begin() + i, s.end());
}
return s;
}