zoukankan      html  css  js  c++  java
  • CCF NOI1113 括号匹配

    问题链接CCF NOI1113 括号匹配




    时间限制: 1000 ms  空间限制: 262144 KB

    题目描述 

      给定一个只包含左右括号的合法括号序列,按右括号从左到右的顺序输出每一对配对的括号出现的位置(括号序列以0开始编号)。

    输入

      仅一行,表示一个合法的括号序列。

    输出

      设括号序列有n个右括号。则输出包括n行,每行两个整数l,r,表示配对的括号左括号出现在第l位,右括号出现在第r位。

    样例输入

    (())()
    样例输出

    1 2

    0 3

    4 5

    数据范围限制

      括号序列长度不超过100。

    提示

     




    问题分析

      这是字符串中左右圆括号匹配问题,使用堆栈就可以解决。

      见左括号就压栈,见右括号就弹栈。

    程序说明

      (略)

    要点详解

    • 堆栈是常用的数据结构
    • 一个数组加上一个指针(整数变量作为下标)其实就是一个堆栈了。



    参考链接:(略)。

    100分通过的C语言程序:

    #include <stdio.h>
    
    #define N 100
    
    int stack[N];
    int ps;
    
    int main(void)
    {
        int i;
        char c;
    
        ps = 0;
        i = 0;
        while((c = getchar()) != '
    ' && c != EOF) {
            if(c == '(')
                stack[ps++] = i;
            else if(c == ')')
                printf("%d %d
    ", stack[--ps], i);
    
            i++;
        }
    
        return 0;
    }



  • 相关阅读:
    Linux w命令
    01.drf文档及外键字段反序列化
    redis的参数解释
    redis集群复制和故障转移
    codis原理及部署_01
    redis 主从哨兵02
    redis 主从哨兵01
    redis持久化
    redis python操作
    redis cluster
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563843.html
Copyright © 2011-2022 走看看