翻转单词顺序列

题目描述

给定一个输入字符串,其中各个单词之间由空格分开,每个单词的字符是顺序的,但是单词之间的顺序是逆序的。
例如:I am a student -> student a am I

思路

  1. 翻转整个字符串
  2. 翻转单个单词,识别方式是空格和字符串结束
class Solution {
public:
    string ReverseSentence(string str) {
        if(str.empty())
           return str;
        reverse(str.begin(),str.end());
        int start=0;
        for(int i=0;i<str.size();i++)
        {
           if(str[i]==' ')
           {
               reverse(str.begin()+start,str.begin()+i);
               start=i+1;
           }
           if(i==(str.size()-1))
               reverse(str.begin()+start,str.end());
        }
        return str;
    }
};

code注意事项

  1. 注意最后一个单词的翻转
  2. 注意reverse函数最后一个参数。

猜你喜欢

转载自blog.csdn.net/ytang_/article/details/79922286