直接从后往前分割,看起来简洁不少。
class Solution {
public:
string reverseWords(string s) {
int i = s.size()-1;
string ans;
while (i >= 0){
while (i >= 0 && s[i] == ' '){
i--;
}
if (i < 0)
break;
int j = i;
while (i >= 0 && s[i] != ' '){
i--;
}
ans += s.substr(i + 1, j - i);
ans += ' ';
}
if (ans.back() == ' ')
ans.pop_back();
return ans;
}
};