ZOJ-1151 Word Reversal,栈的解法

9 篇文章 0 订阅
9 篇文章 0 订阅
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

******栈法求解******************************************************************************************************************

#include<stdio.h>  
#include<algorithm>  
#include<iostream>  
#include<stack>  
#include<string.h>  
using namespace std;  
stack<char>z;  
int main()  
{  
    int k;  
    int n;  
    char a[999];  
    scanf("%d",&k);  
    while(k--)  
    {  
        scanf("%d",&n);  
        getchar();  
        while(n--)  
        {  
            gets(a);  
            int l=strlen(a);  
            int i=0;  
            while(1)  
            {  
                while(a[i]!=' '&&i<l)  
                {  
                    z.push(a[i]);  
                    i++;  
                }  
                while(!z.empty())  
                {  
                    printf("%c",z.top());  
                    z.pop();  
                }  
                if(i!=l)  
                {  
                    printf(" ");  
                    i++;  
                }  
                else break;  
            }  
            printf("\n");  
        }  
        if(k)  
            printf("\n");  
    }  
    return 0;  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值