很直接的解法,就是按照2*k的递增来遍历,然后把前面k个翻转即可,这里需要注意一下边缘情况即可
class Solution {
public:
string reverseStr(string s, int k) {
int n = s.size();
for (int i = 0; i < n; i += (k<<1))
{
// 双指针去翻转即可
int l = i;
int r = min(i+k-1, n-1);
while (l < r)
{
swap(s[l], s[r]);
++l;
--r;
}
}
return s;
}
};
作者:ffreturn
链接:https://leetcode-cn.com/problems/reverse-string-ii/solution/541-cji-hu-shuang-bai-de-mo-ni-jie-fa-by-8n52/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。