一、题目
二、思路及代码
这里只是单词与单词之间的顺序翻转了,但是单词内部顺序是正确的,所以:
①遍历字符串,通过空格来确定单词
②将单词和空格依次入栈
③依次出栈组成新的字符串
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;}
};