string reverseStr(string s, int k) {
int res=0,n=s.size();
for(int i=0;i<n;i++){
res++;
if(res==1&&i+k>=n){
int left=i,right=n-1;
while(left<right)
swap(s[left++],s[right--]);
break;
}
if(res==k)
{
int left=i-k+1,right=i;
while(left<right)
swap(s[left++],s[right--]);
}
else if(res>k&&res<2*k)
continue;
else if(res==2*k)
res=0;
}
return s;
}
string reverseStr(string s, int k) {
int n=s.size(),cnt=n/k;
for(int i=0;i<=cnt;i++){
if(i%2==0){
if(i*k+k<n){
reverse(s.begin()+i*k,s.begin()+i*k+k);
}else{
reverse(s.begin()+i*k,s.end());
}
}
}
return s;
}
string reverseStr(string s, int k) {
for(int i=0;i<s.size();i+=2*k){
reverse(s.begin()+i,min(s.begin()+i+k,s.end()));
}
return s;
}