①多次使用双指针反转思路
如图
1.整体反转
2.调整第一段
3.调整第二段
更详细的细节:代码随想录
②代码实现
#include<iostream>
using namespace std;
//双指针实现反转
void reverseArr(string &s,int slow,int fast)
{
while(slow<fast)
{
swap(s[slow++],s[fast--]);//闭区间//左闭右闭
}
}
int main()
{
int k;
cin>>k;//需要反转的长度
string s;
cin>>s;
reverseArr(s,0,s.size()-1);//整体反转
reverseArr(s,0,k-1);//调整第一部分反转后的内容
reverseArr(s,k,s.size()-1);//调整第二部分反转后的内容
cout<<s;
}