#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
class Solution {
public:
// 能别用extra space就最好别用了
void reverseWords(string &s) {
int i = 0, j = 0;
while (i<s.size()) {
if (s[i] == ' ') {
s[j++] = ' ';
while (++i < s.size() && s[i] == ' ');
}
else
s[j++] = s[i++];
}
int N = j;
if (s[N - 1] == ' ') { s.erase(N - 1, 1); --N; }
if (s[0] == ' ') { s.erase(s.begin()); --N; }
if (N <= 0) { s = ""; return; }
s.resize(N);
reverse(s.begin(), s.end());
for (int i = 0; i < s.size(); ++i) {
int j = i + 1;
for (; j < s.size(); ++j) {
if (s[j] == ' ') {
reverse(&s[i], &s[j]);
i = j;
break;
}
}
if (j == s.size()) { reverse(&s[i], &s[j]); break; }
}
}
};