剑指offer-44.翻转单词顺序列

来源:互联网 发布:sql中like用法 编辑:程序博客网 时间:2024/05/20 12:20

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


思路:先局部转,逐个单词转,再全局转,例如student. a am I,局部转结果为:.tneduts a ma I 再全局转,结果为I am a student.


class Solution {public:    string ReverseSentence(string str)     {        if (str == "")            return str;        string::iterator iter1;        string::iterator iter2 = str.begin();        for (iter1 = str.begin(); iter1 < str.end() + 1; ++iter1)        {            if (*iter1 == ' ' || *iter1 == '\0')            {                reverse(iter2, iter1);//以空格为标志,局部转,逐个单词转                iter2 = iter1 + 1;            }        }        //全局转        reverse(str.begin(),str.end());        return str;    }};



0 0
原创粉丝点击