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

xiaoxiao2021-02-28  130

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

转载请注明原文地址: https://www.6miu.com/read-42113.html

最新回复(0)