HDU1321 ZOJ1295 Reverse Text

问题链接:HDU1321 ZOJ1295 Reverse Text。基础训练级的题,用C语言编写。

这个问题是首先输入测试例子数量t,然后输入t行字符串,将每一行逆序输出。

利用堆栈后进先出的原理,逆序处理可以使用堆栈来实现。

程序中,使用了一个自行实现的堆栈,简单地实现逆序功能。

本程序使用getchar()函数处理输入流,除了输入字符压栈外,读入的字符直接输出输出,没有使用多余的缓存。

这个问题类似于HDU1062 Text Reverse

AC通过的C语言程序如下:

/* HDU1321 ZOJ1295 Reverse Text */

#include <stdio.h>

#define MAXSTACK 1024

char stack[MAXSTACK];
int pstack;

void push(char c)
{
    stack[pstack++] = c;
}

char pop()
{
    return stack[--pstack];
}

int main(void)
{
    int t;
    char c;

    scanf("%d", &t);
    getchar();
    while(t--) {
        pstack = 0;

        for(;;) {
            c = getchar();
            if(c == '\n') {
                while(pstack)
                    putchar(pop());
                putchar(c);
            } else
                push(c);

            if(c == '\n')
                break;
        }
    }

    return 0;
}
时间: 2024-12-28 19:04:28

HDU1321 ZOJ1295 Reverse Text的相关文章

TJU Problem 1644 Reverse Text

注意: int N; cin >> N; cin.ignore(); 同于 int N; scanf("%d\n",&N); 另:关于 cin 与 scanf: scanf是格式化输入,printf是格式化输出. cin是输入流,cout是输出流.效率稍低,但书写简便. 格式化输出效率比较高,但是写代码麻烦. 流输出操作效率稍低,但书写简便. cout之所以效率低,正如一楼所说,是先把要输出的东西存入缓冲区,再输出,导致效率降低. 缓冲区比较抽象,举个例子吧: 曾经

zju 1295 Reverse Text

Reverse Text Time Limit: 2 Seconds      Memory Limit: 65536 KB In most languages, text is written from left to right. However, there are other languages where text is read and written from right to left. As a first step towards a program that automat

HDOJ/HDU 1321 Reverse Text(倒序输出~)

Problem Description In most languages, text is written from left to right. However, there are other languages where text is read and written from right to left. As a first step towards a program that automatically translates from a left-to-right lang

杭电ACM1321——Reverse Text~~逆序输出字符串

简单的字符串逆序输出. AC代码: #include <iostream> #include <cstring> using namespace std; int main() { char str[100000]; int n; while(cin >> n) { getchar(); for(int i = 0; i < n; i++) { gets(str); int length = strlen(str); for(int j = length - 1;

RSA加密算法

1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream; 4 import java.io.ObjectInputStream; 5 import java.io.ObjectOutputStream; 6 import java.math.BigInteger; 7 import java.security.InvalidParameterException; 8 im

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

RSA AES 前端JS与后台JAVA的加密解密的是实现

AES CryptoJS 前提是编码方式,key,vi中设置一样,就可以进行跨语言加密解密 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 <link rel="stylesheet" href="<%=

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

C#编程实践--字符串反转

朴素反转 朴素解法,倒序遍历,字符串拼接,字符串性能低下,在长度已知的前提可以使用char数组代替 public static string NaiveReverse(string text) { string reverse = string.Empty; for (int i = text.Length - 1; i >= 0; i--) { reverse += text[i]; } return reverse; } StringBuilder拼接 进一步改进,使用StringBuild