class Solution {
public:
std::string reverseStr(std::string s, int k) {
// s = "abcdefg", k = 2 循环一"abcd" 循环二"efg"
for (int i=0; i<s.size(); i+=2*k){
// 剩余字符s.size()-i 小于k
if (s.size()-i<k) reverse(s.begin()+i, s.end());
else reverse(s.begin()+i, s.begin()+i+k);
}
return s;
}
};
class Solution {
public:
// std::string s 值传递pass by value 函数内部使用副本操作,对s的修改不影响原始字符串s
void reverse(std::string&s, int start, int end){
for (;start<end;start++, end--)
std::swap(s[start], s[end]);
}
std::string reverseStr(std::string s, int k) {
for (int i=0; i<s.size(); i+=2*k){
if (s.size()-i < k) reverse(s, i, s.size()-1);
else reverse(s, i, i+k-1);
}
return s;
}
};