1. 用栈存储单词 时间空间复杂度都为O(n)
  2. reverse 翻转字符串空间复杂度为O(1);
class Solution {
public:
    string ReverseSentence(string str) {
        stack<string> stack;
        string ans;
         for(int i = 0; i < str.size(); i++){
             if(str[i] != ' ')ans+=str[i];
             else {stack.push(ans); ans.clear();}
        }
        while(!stack.empty()){
            ans = ans+" "+stack.top();
            stack.pop();
        }
        return ans;
    }
};
class Solution {
public:
    string ReverseSentence(string str) {
        reverse(str.begin(),str.end());
        int f = 0;
        for(int i = 0; i < str.size(); i++){
            if(str[i]==' '){
                reverse(str.begin()+f,str.begin()+i);
                f = i+1;
            }
        }
        reverse(str.begin()+f, str.end());
        return str;
    }
};