class Solution { //本题这个是利用下标访问的 没有用什么迭代器 挺好啊 public: string ReverseSentence(string str) { reverse(str.begin(),str.end());//上来直接把整个句子换了 int front=0; int back=0; int size = str.size(); while(front<size){ // front相当于单词的开始 头标没走到最后 while(front<size&&str[front]==‘ ‘) //开始有空格的话 就一直向后退 ++front; back=front; //起点终点在一起 while(back<size&&str[back]!=‘ ‘) //back往后一个没关系 end()也是指向字符串最后一个 ++back; reverse(str.begin()+front, str.begin()+back);//对这一部分交换 front=back;//重新相等 } return str; } };
原文:https://www.cnblogs.com/cgy1012/p/11438368.html