右旋字符串
题干
思路
- 翻转字符串
- 大转
- 小转
- 字符串的长度和目标位置都是比较容易知道的[0,n-1][n,end-1]两段
实现
string类别的reverse函数,代替自己写的for循环和swap,更简练
reverse(s.begin(), s.begin() + n);
代码
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;
string s;
cin>>n;
cin>>s;
//交换整个字符串
for(int i=0,j=s.length();i<j;i++,j--){
swap(s[i],s[j]);
}
//交换部分1
for(int i=0,j=n;i<j;i++,j--){
swap(s[i],s[j]);
}
//交换部分2
for(int i=n,j=s.length();i<j;i++,j--){
swap(s[i],s[j]);
}
}