这道题两年前的时候做觉得挺麻烦的,现在做这道题就很容易了。
算法思想:设置一个存字符串的栈,再用一个字符串记录每个单词。遍历整个字符串,每次遇到一个空格,就把累加得出的单词字符串压入栈中。
利用栈先进先出的功能,再输出即可
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<string>t;
string s;
getline(cin,s);
string n;
int f=0;
for(int i=0;i<s.size();i++){
if(s[i]==' '){
f++;
t.push(n); //把字符串压入栈中
n="";
continue;
}
n=n+s[i];
}
cout<<n;
for(int i=0;i<f;i++){
cout<<" ";
cout<<t.top();
t.pop();
}
cout<<endl;
return 0;
}