翻转单词序列

Posted vector6_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻转单词序列相关的知识,希望对你有一定的参考价值。

翻转单词序列

牛客最近来了一个新员工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;
    }
};

以上是关于翻转单词序列的主要内容,如果未能解决你的问题,请参考以下文章

翻转单词顺序列

最强解析面试题:翻转单词顺序序列

剑指Offer - 翻转单词顺序列

剑指offer-翻转单词顺序列

引用参数(翻转单词顺序列)

华为OD机试真题Python实现翻转单词顺序真题+解题思路+代码(2022&2023)