一、题目
二、思路及代码
这里只是单词与单词之间的顺序翻转了,但是单词内部顺序是正确的,所以:
①遍历字符串,通过空格来确定单词
②将单词和空格依次入栈
③依次出栈组成新的字符串
class Solution {
public:
string ReverseSentence(string str) {
if(str=="")return str;
stack<string> st;
string word="";
const char *k=" ";
for(int i=0;i<str.length();i++){
//当出现空格的时候说明前边是一个完整的单词,把单词push进去,再把空格push进去
if(str[i]==k[0]){
st.push(word);
st.push(" ");
word="";
}else{
word+=str[i];
}
}
//最后一个单词push进去
st.push(word);
string ans="";
//依次出栈
while(!st.empty()){
ans+=st.top();
st.pop();
}
return ans;
}
};