PAT (Basic Level):1009 说反话 (20)

题目信息

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello

分析

逆序输出,可想到用栈的特性,后进先出。请教了浙大群里大佬,while(cin>>s)可用ctrl+z终止输入。发给pat后能中止说明pat测试时会输入终止符。

代码(用的柳神的)

#include 
#include 
using namespace std;
int main() {
    stack v;
    string s;
    while(cin >> s) {
        v.push(s);
    }
    cout << v.top();
    v.pop();
    while(!v.empty()) {
        cout << " " << v.top();
        v.pop();
    }
    return 0;
}

测试结果

PAT (Basic Level):1009 说反话 (20)_第1张图片
image.png

你可能感兴趣的:(PAT (Basic Level):1009 说反话 (20))