class Solution {
public:
void reverseStr2(string& s,int begin,int end){
for(;begin<end;begin++,end--){
s[begin]^=s[end];
s[end]^=s[begin];
s[begin]^=s[end];
}
}
string reverseStr(string s, int k) {
int i;
for(i = 0;i<s.size();i++){
if(((i+1)/k)%2==1&&((i+1)%k==0)){
reverseStr2(s,i+1-k,i);
}
}
if((s.size()/k)%2==0&&s.size()%k>0){
reverseStr2(s,s.size()-s.size()%k,s.size()-1);
}
return s;
}
};