题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路:两步反转法,先整体反转,然后每个单词进行反转。
找单词的方法是找相应的空格。
如果start的位置是空格就++,如果end的地方是空格就--或者是末尾结束符,就进行反转,一定要记得自己定义一个反转函数。
其他在单词中间的情况就++end。找空格。
class Solution { public: void helper(string &str,int start,int end){ for(start,end;start < end;++start,--end){ swap(str[start],str[end]); } } string ReverseSentence(string str) { if(str.size() == 0){ return ""; } helper(str,0,str.size() - 1); int start = 0,end = 0; while(str[start] != '