Java教程

L1-8 说反话-加强版(程序简单,测试点全部通过)

本文主要是介绍L1-8 说反话-加强版(程序简单,测试点全部通过),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

(还没写完,可以再增加几种方法)

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

输入格式:

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

输出格式:

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

输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello

测试点:

代码段:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector <string> ss;
int main(){
    string s;
    while(cin>>s){
        ss.push_back(s);
    }
    reverse(ss.begin(),ss.end());
    if(ss.empty())       //如果全为空格时,即堆栈为空时
        return 0;
    for(int i = 0;i<ss.size()-1;i++){
        cout<<ss[i]<<" ";
    }
    cout<<ss.back();
    return 0;
}

1.因为数据量大,所以不能使用数组,否则最后一个测试点无法通过

2.因为是单词,所以数据类型为string类型

3.reserve:反转

4.经过调试,发现只有空格时出现错误,所以增加一个判断,堆栈是否为空

这篇关于L1-8 说反话-加强版(程序简单,测试点全部通过)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!