解题思路
维护一个栈,存放单词和空格。
创建一个空串string word;假如没有遇到空白‘ ’,word+=str[i];假如遇到空白,说明一个单词到此结束,把word压栈,再把空格‘ ’压栈,字符串word清空,word=“”;
最后让字符串res逐个加上栈顶元素即可。
class Solution {
public:
string ReverseSentence(string str) {
int n=str.size();
if(n==0)return str;
stack<string>stk;
string word;
for(int i=0;i<n;++i){
if(i==n-1&&str[i]!=' '){
word+=str[i];
stk.push(word);
break;
}
if(str[i]!=' '){
word+=str[i];
}else{
// if(word.size()!=0){
// stk.push(word);
// word="";
// }
stk.push(word);
word="";
stk.push(" ");
}
}
string res;
while(!stk.empty()){
res+=stk.top();
stk.pop();
}
return res;
}
};