字符串-07. 说反话-加强版 (20)

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

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

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

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello

先进后出,考虑字符串栈。

#include <iostream>  
#include <stack>  
#include <string>  
using namespace std;  
int main()  
{  
    stack<string> s;  
    string  sp;  
    bool flag=false;  
    while(cin>>sp)  
        s.push(sp);  

    while(!s.empty())  //栈不空则出栈
    {  
        if(flag)  
            cout<<" "; //每输出一字符串接着输出一空格 
        else  
            flag=true;  
        cout<<s.top();//输出栈顶元素  
        s.pop();  //出栈

    }  
    return 0;  
}  

cin默认遇到空格,输入结束。即输入字符串后无论再输入几个空格都过滤掉。输出时每两个字符串间添加空格即可。

发布了58 篇原创文章 · 获赞 2 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章