給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。
輸入格式:測試輸入包含一個測試用例,在一行內給出總長度不超過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默認遇到空格,輸入結束。即輸入字符串後無論再輸入幾個空格都過濾掉。輸出時每兩個字符串間添加空格即可。