1009 说反话 (20分)

PAT Based Level

Posted by Kenshin on June 7, 2020
本文字符数:英文306字 | 中文953字

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello

我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
    string s;
    vector<string> a(0);
    while (cin >> s) {
        if (!a.empty())
            a.insert(a.begin(), " ");
        a.insert(a.begin(), s);
    }
    for (auto &i : a)
        cout << i;
    return 0;
}

柳神

呜呜呜 LIFO 我怎么没想到栈呢,学习 C++STL 栈的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stack>
using namespace std;
int main() {
    stack<string> v;
    string s;
    while(cin >> s) {
        v.push(s);
    }
    cout << v.top();
    v.pop();
    while(!v.empty()) {
        cout << " " << v.top();
        v.pop();
    }
    return 0;
}