翻转单词顺序列(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;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 10:25
点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务