7-32 说反话-加强版 (20分)
题目:传送门
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
感谢杭州电子科技大学李卫明老师修正数据! 感谢浙江工业大学之江学院石洗凡老师修正测试点提示。
思路:只是单词的次序变化,单词里面的字母是没有变化的,还有可能有多个空格的情况!
:用string + 栈操作,用栈的性质。先进后出!
#include<bits/stdc++.h> using namespace std; int main() { stack<string> a;// 定义一个栈 存字符串 string temp; while(cin>>temp)// 将输入的字符串一字符串的形式存到栈中 a.push(temp);// 压栈 bool flog = false; while(!a.empty()) { if(flog) cout<<" "; cout<<a.top(); a.pop(); flog = true; } return 0; }