题目链接:
https://leetcode-cn.com/problems/reverse-string-ii/
题目描述:
题解:
要点:遍历的步长为2 * k。当需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章。
class Solution {
public:
void reverse(string& s, int start, int end){
for(int i = start, j = end; i < j; i++, j--)
swap(s[i], s[j]);
}
string reverseStr(string s, int k) {
for(int i = 0; i < s.size() - 1; i += (2 * k))
{
if(i + k <= s.size() - 1)
{
reverse(s, i, i + k - 1);
continue;
}
reverse(s, i, s.size() - 1);
}
return s;
}
};