II. 左旋转字符串
题很简单但是自己的复杂度挺高的
时间复杂度O(n) 空间复杂度O(n)
class Solution {
public:
string reverseLeftWords(string s, int n) {
int k=s.length();
string a;
for(int i=n;i<k;i++)
a+=s[i];
for(int i=0;i<n;i++)
a+=s[i];
return a;
}
};
然后来个时间复杂度O(1)的空间复杂度O(n)的
class Solution {
public:
string reverseLeftWords(string s, int n) {
int k=s.length();
reverse(s.begin(),s.end());//先全部翻转变成gfedcba
reverse(s.begin(),s.begin()+k-n);//把前面部分翻转cdefgba
reverse(s.begin()+k-n,s.end());//再把后面翻转cdefgab
return s;
}
};