翻转单词顺序列(reverse翻转)

翻转单词顺序列

http://www.nowcoder.com/questionTerminal/3194a4f4cf814f63919d0790578d51f3

  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;
    }
};
全部评论

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
11-28 17:48
中山大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务