题目描述
给定一个输入字符串,其中各个单词之间由空格分开,每个单词的字符是顺序的,但是单词之间的顺序是逆序的。
例如:I am a student -> student a am I
思路
- 翻转整个字符串
- 翻转单个单词,识别方式是空格和字符串结束
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注意事项
- 注意最后一个单词的翻转
- 注意reverse函数最后一个参数。