反转单词序列

翻转单词顺序列

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

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
class Solution {
public:

string ReverseSentence(string str) {
    //解法一,看的别的牛人的 https://www.nowcoder.com/profile/9093942/codeBookDetail?submissionId=16329784
    int len = str.size();
    string tmp="",res="";
    for(int i=0;i<len;i++)
    {
        if(str[i]!=' ')
        {
            tmp+=str[i];
        }
        else
        {
            res=' '+tmp+res;
            tmp="";
        }
    }
    res=tmp+res;
    return res;

    /*解法2:
    int len = str.size();
    if(len<=0)
        return "";

    stack<string>srr;

    string stmp="";
    for(int i=0;str[i]!='\0';i++)
    {
        if(str[i]==' ')
        {
            srr.push(stmp);
            stmp="";
            continue;
        }
        stmp+=str[i];
    }
    srr.push(stmp);

    str="";
    while(!srr.empty())
    {
        str=str+srr.top()+" ";
        srr.pop();
    }

    return str.substr(0,len);//删去最后一个空格*/
}

};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务