字符串_右旋字符串
- 一、kamacoder-55
- 二、题解
- 1.引库
- 2.代码
一、kamacoder-55
右旋字符串
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。
例如,对于输入字符串 “abcdefg” 和整数 2,函数应该将其转换为 “fgabcde”。
输入:2
abcdefg
输出:fgabcde
二、题解
1.引库
#include <iostream>#include <cstdio>#include <cstdlib>#include <queue>#include <stack>#include <algorithm>#include <string>#include <map>#include <set>#include <vector>using namespace std;
2.代码
本题中,我们需要将字符串右移n位,字符串相当于分成了两个部分,如果n为2,
abcdefg全部反转
gf edcba分为两部分反转
fg abcde
其实,思路就是 通过 整体倒叙,把两段子串顺序颠倒,两个段子串里的的字符在倒叙一把,负负得正,这样就不影响子串里面字符的顺序了。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;int main(){int n;string s;cin>>n;cin>>s;int size=s.size();reverse(s.begin(),s.end());reverse(s.begin(),s.begin()+n);reverse(s.begin()+n,s.end());cout<<s<<endl;return 0;
}