题目链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/
题目如下:
class Solution {
public:
string reverseWords(string s) {
//去除头和尾的空格
s.erase(0,s.find_first_not_of(' '));
s.erase(s.find_last_not_of(' ')+1);
reverse(s.begin(),s.end());//先整体反转,再对每个单词依次进行反转
for(int i=0,j=0;j<s.size();++j){
if(j==s.size()-1) reversestr(s,i,j);//对s的最后一个单词进行反转
if(s[j]==' '){//s中的单词,遇到空格则反转
reversestr(s,i,j-1);
i=j+1;//当前空格保留住,下一行为将剩下的空余空格删除
while(s[i]==' ') s.erase(i,1);//去除单词中间多个空格的问题
}
}
return s;
}
void reversestr(string& s,int i,int j){
while(i<j){
swap(s[i],s[j]);
++i;
--j;
}
}
};