思路 :先把整个句子翻转,然后再翻转每一个单词
又把string里stl用法重新复习了一遍,里面有些内容比如 reverse sort 会了是真方便
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;
}
};