class Solution {
public:
void deletespace(string& s){
int fast = 0;
int slow = 0;
for(fast = 0;fast<s.size();fast++){
if(s[fast] !=' ' ){
break;
}
}
for(;fast<s.size();fast++){
if(fast>0&&s[fast]==s[fast-1]&&s[fast]==' '){
continue;
}
s[slow] = s[fast];
slow++;
}
if(s[slow-1]==' '){
s.resize(slow-1);
}
else{
s.resize(slow);
}
}
void reverstr(string& s,int begin,int end){
for(;begin<end;begin++,end--){
s[begin]^=s[end];
s[end]^=s[begin];
s[begin]^=s[end];
}
}
string reverseWords(string s) {
deletespace(s);
reverstr(s,0,s.size()-1);
int begin = 0;
int end;
for(int i = 0;i<s.size();i++){
if(s[i]==' '){
end = i-1;
}else if(i ==s.size()-1){
end = s.size()-1;
}else{
continue;
}
reverstr(s,begin,end);
begin = end+2;
}
return s;
}
};