翻转字符串

思路 :先把整个句子翻转,然后再翻转每一个单词

 又把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;
    }
};

 

posted @ 2019-08-31 11:23  高颖1995  阅读(227)  评论(0编辑  收藏  举报