II. 左旋转字符串

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;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_44808694/article/details/111414403