字符串-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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章