翻转单词顺序列

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
 
 
 
提交链接:点击
 
 
 
思路:想到栈先进后出的特性。考虑将以空格分割的字符串依次存入栈,然后再依次出栈就好了!
 
 
 
代码:
 
class Solution {
public:
    string ReverseSentence(string str) {
        stack<string> result;
        string temp="";
        for(unsigned long i=0;i<str.size()+1;i++){ //依次入栈
            if(str[i]==' '|| i==str.size()){
                result.push(temp);
                temp="";
            }else
                temp+=str[i];
        }
        temp=result.top();
        result.pop();
        while(!result.empty()){  //依次出栈
            temp=temp+" "+result.top();
            result.pop();
        }
        return temp;
    }
};

 

posted on 2018-11-05 21:47  Magic_chao  阅读(110)  评论(0编辑  收藏  举报

导航