class Solution {
public:
string reverseWords(string s) {
s=exSpace(s);
s=reverseS(s,0,s.size()-1);
int begin=0;
for(int i=0;i<=s.size();i++){
if(s[i]==' '||i==s.size()){
reverseS(s,begin,i-1);
begin=i+1;
}
}
return s;
}
string exSpace(string& s){
int len=s.size();
for(int i=len-1;i>0;i--){
if(s[i]==' '&&s[i]==s[i-1]){
s.erase(s.begin()+i);
}
}
while(s.size()>0&&s[0]==' '){
s.erase(s.begin());
}
while(s.size()>0&&s[s.size()-1]==' '){
s.erase(s.begin()+s.size()-1);
}
return s;
}
string reverseS(string& s,int begin,int end){
for(int i=begin,j=end;i<j;i++,j--){
swap(s[i],s[j]);
}
return s;
}
};
注意,另外两个返回string的函数,形参需要string &s,否则将导致结果返回错误