题目
思路
首先我们按照空格将所有的单词分隔开,然后将分割开单词依次入栈,最终一个个出栈。
trick
1.首先为了防止查找过程出现溢出,给字符串末尾设置了一个哨兵
2.处理出栈时的空格问题
代码
class Solution {
public:
string reverseWords(string s) {
s += " ";
stack<string> myStack;
for(int i = 0;i < s.size();i++){
if(isspace(s[i])) continue;
string temp = "";
while(s[i] != ' '){
temp.push_back(s[i]);
i++;
}
myStack.push(temp);
}
string ans;
while(!myStack.empty()){
ans += myStack.top();
if(myStack.size() > 1){
ans.push_back(' ');
}
myStack.pop();
}
return ans;
}
};