L1-8 说反话-加强版 (20 分)——寒假训练测试题目集

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

输入格式:

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

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

样例:">样例:">输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello

感谢杭州电子科技大学李卫明老师修正数据! 感谢浙江工业大学之江学院石洗凡老师修正测试点提示。

AC代码:

分析思路:巧妙利用栈先进后出特点进行存储输入的字符串 然后再输出栈中的元素

#include<bits/stdc++.h>
using namespace std;
int main(){
    string str;
    stack<string> st;
    while(cin>>str){
        st.push(str);
    }
    if(!st.empty()){//第一个元素区别处理
        cout<<st.top();
        st.pop();
    }
    while(!st.empty()){
        cout<<" "<<st.top();
        st.pop();
    }
    return 0;
}

上一篇:24. 两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。


下一篇:拼音转汉字代码