class Solution {
public:
string reverseWords(string s) {//利用双指针取单词放入stack
stack<string> st;
int l = 0, len = s.size() - 1;
string tmp = "";
if (s.size() == 0 || s == "") return "";//特判
while (s[len] == ' '&& len > 0) len--;//防止len<0,找到最后一个不为‘ ’的位置
while (l <= len)
{
while (s[l] == ' ') l++;//跳过前空格
while (s[l] != ' '&& l <= len) tmp += s[l++];
st.push(tmp);//存入单词
tmp = "";
}
if(st.size()==0) return "";//全部是空格
tmp = st.top();
st.pop();//防止第一个空格
while (st.size() != 0)
{
tmp.append(' '+st.top());
st.pop();
}
return tmp;
}
};