ZOJ Problem Set - 1151 Word Reversal

ZOJ Problem Set - 1151
Word Reversal

Time Limit: 2 Seconds                                     Memory Limit: 65536 KB                            

For each list of words, output a line with each word reversed without changing   the order of the words.


This problem contains multiple test cases!

The first line of a multiple input is an integer N, then a blank line followed   by N input blocks. Each input block is in the format indicated in the problem   description. There is a blank line between input blocks.

The output format consists of N output blocks. There is a blank line between   output blocks.


Input

You will be given a number of test cases. The first line contains a positive   integer indicating the number of cases to follow. Each case is given on a line   containing a list of words separated by one space, and each word contains only   uppercase and lowercase letters.


Output

For each test case, print the output on one line.


Sample Input

1

3
  I am happy today
  To be or not to be
  I want to win the practice contest


Sample Output

I ma yppah yadot
  oT eb ro ton ot eb
  I tnaw ot niw eht ecitcarp tsetnoc

AC 代码:

#include<iostream>
#include<stdio.h>
#include<stack>
using namespace std;
void display(stack<char> &s)
{
 while(!s.empty())
 {
  cout<<s.top();
  s.pop();
 }
}
int main()
{
 int n;
 cin>>n;
 while(n--)
 {
  int m;
  stack<char>s;
  cin>>m;
  getchar();
  while(1)
  {
   char t=getchar();
   //cout<<"t: "<<t<<endl;
   if(t=='\n')
   {
    display(s);
    m--;
    cout<<endl;
    if(m==0)break;
   }
   else if(t==' ')
   {
      display(s);
    cout<<' '; 
   }
   else s.push(t);
  }
  if(n!=0)cout<<endl;
 }
}

posted @ 2013-07-01 15:13  湖心北斗  阅读(178)  评论(0编辑  收藏  举报