PTA 7-12 说反话-加强版

7-12 说反话-加强版(20 分)

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

输入格式:

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

输出格式:

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

输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string line;
	getline(cin,line);
	stack<char>cnt;
	
	int i,j;
	int first = 0;
	for(i = line.length() - 1;i>=0;i--)
	{
		if(line[i] != ' '&&i != 0)
			cnt.push(line[i]);		
		else {
			if(first != 0 && !cnt.empty()) cout<< " ";
			if(i == 0 && line[0] != ' ')cnt.push(line[0]);
			
			int flag = 0;
			while(!cnt.empty()){
				cout << cnt.top();
				cnt.pop();
				flag = 1;
			}
			if(flag == 1)
				first++;
	   }
	}
	cout<<endl;
	

	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/gaiya2050/article/details/81151894