其他分享
首页 > 其他分享> > 翻转单词序列

翻转单词序列

作者:互联网

翻转单词序列

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

Input: “nowcoder. a am I”

Output: “I am a nowcoder.”

class Solution {
public:
    //找到空格,分解出子单词,插入到res的最前面并补上空格,注意原string的最后一个词最后单独插入,并且最后注意结果sting末尾的空格
    //也可使用辅助栈
    string ReverseSentence(string str) {
        if(str.length()==0)
            return "";
        string res = "";
        int headIndex = 0;
        for(int i=0; i<str.length(); ++i)
        {
            if(str[i]== ' ')
            {
                string subString = str.substr(headIndex, i - headIndex);
                res = subString + ' ' + res;
                headIndex = i+1;
            }
            
        }
        if(headIndex<=str.length()-1)                                        //原string的最后一个词最后单独插入
        {
            string lastStr = str.substr(headIndex, str.length()-headIndex);
            res = lastStr + ' ' + res;
        }
        res = res.substr(0,res.length()-1);                                  //注意结果sting末尾的空格消去
        return res;
    }
};

标签:string,Fish,am,单词,nowcoder,序列,翻转
来源: https://blog.csdn.net/qq_41105501/article/details/120642261