0
点赞
收藏
分享

微信扫一扫

NC269 翻转单词序列

小暴龙要抱抱 2022-04-05 阅读 57
c++

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

在这里插入图片描述
示例1

输入:
"nowcoder. a am I"
返回值:
"I am a nowcoder."

示例2

输入:
""
返回值:
""

主要思路:常规操作-字符串分割

class Solution {
public:
    void str_split(const std::string & src, const std::string & sep, std::vector<std::string> & vec_str)
    {
        std::string::size_type start = 0;
        for(std::string::size_type end = src.find(sep, start); end != std::string::npos; end = src.find(sep, start))
        {
            if(end > start)
            {
                vec_str.push_back(src.substr(start, end - start));
            }
            start = end + sep.length();
        }
        if(start < src.length())
        {
            vec_str.push_back(src.substr(start, src.length() - start));
        }
    }
    string ReverseSentence(string str) {
        vector<string>strvec;
        str_split(str, " ", strvec);
        reverse(strvec.begin(),strvec.end());
        string res="";
        for(int i=0;i<strvec.size();i++)
            res.append(strvec[i]).append(" ");
        res=res.substr(0,res.length()-1);
        return res;     
    }
};
举报

相关推荐

0 条评论