括号配对是最基本的栈的问题,它是栈入门的经典题目,思路是,如果是左括号直接进栈,如果是右括号,这时就要比较栈顶的元素与他是否匹配,如果匹配则出栈,否则进栈,下面是代码的实现:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 typedef struct stack{//定义栈来存储括号
 4     char ch;
 5     struct stack *next;
 6 }link_stack;
 7 link_stack * init_link_stack();
 8 link_stack * push_stack(link_stack *top, char ch);
 9 link_stack * pop_stack(link_stack *top);
10 int main()
11 {
12     int n;
13     scanf("%d", &n);
14     getchar();
15     while(n --)
16     {
17         link_stack * top;
18         top = init_link_stack();//初始化top指针
19         char ch[10001];
20         scanf("%s", ch); int i = 0;
21         while(ch[i] != '\0')//判断读到结束符
22         {
23             if(((ch[i] == ']') && (top -> ch == '['))||((ch[i] == ')') &&(top -> ch == '(')))//如果将要进栈的是右括号,判断栈顶元素是否为左括号,如果是就弹出
24                 top = pop_stack(top);
25             else
26                 top = push_stack(top, ch[i]);//否则压栈
27             i ++;
28         }
29         if(top -> ch == '0')//判断栈是否为空
30             printf("Yes\n");
31         else
32             printf("No\n");
33     }
34     return 0;
35 }
36
37 link_stack * init_link_stack()//初始化栈函数
38 {
39     link_stack *node;
40     node = (link_stack *) malloc(sizeof(link_stack));
41     node -> next = NULL;
42     node ->ch = '0';
43     return node;
44 }
45 link_stack * push_stack(link_stack *top, char ch)//入栈函数
46 {
47     link_stack *node;
48     node = init_link_stack();
49     node -> ch = ch;
50     node -> next = top;
51     top = node;
52     return top;
53 }
54 link_stack * pop_stack(link_stack *top)//出栈函数
55 {
56     link_stack *node;
57     if(top -> next == NULL)
58         return top;
59     else
60     {
61         node = top;
62         top = top -> next;
63         free(node);
64         return top;
65
66     }
67
68 }

转载于:https://www.cnblogs.com/Howe-Young/p/3930914.html

NYOJ2括号配对问题相关推荐

  1. NYOJ2—括号配对问题

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...

  2. nyoj2 括号配对问题

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...

  3. NYOJ 括号配对问题

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...

  4. ACM试题 - 括号配对问题 - Java中字符串截取和定位问题

    ACM试题题源(括号配对问题):http://acm.nyist.net/JudgeOnline/problem.php?pid=2 提交代码: import java.util.Scanner;pu ...

  5. 括号配对问题_栈stack

    问题 A: 括号配对问题 时间限制: 3 Sec  内存限制: 128 MB 提交: 3  解决: 2 [提交][状态][讨论版] 题目描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第 ...

  6. NYOJ 2 括号配对问题

    括号配对问题 时间限制:3000 ms  |           内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N& ...

  7. 括号配对问题 -- ACM解决方法

    括号配对问题 (栈的使用) 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数 ...

  8. acm括号配对问题c语言,ACM:UESTC - 649 括号配对问题 - stack

    /*/ 简单的括号配对问题 先把给出的数字串全部变成括号串,在用栈去压入括号,每次保存栈顶括号,如果栈顶括号能和下一个括号配对,就把栈顶弹出,指括号的指针后移. 最后判断栈内是否还有元素,如果有,就说 ...

  9. 括号配对问题----栈模拟

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...

最新文章

  1. Django的Form表单
  2. 服饰新消费的2021:传统快时尚败退,内衣、汉服等细分赛道狂欢
  3. HDU 3308 线段树求区间最长连续上升子序列长度
  4. 深度好文 | 战“疫”上云正当时:打开云计算的正确姿势
  5. 95-10-035-启动-Metrics
  6. 为什么我发现自己照镜子觉得很好看,但是拍照就像变了一个人?
  7. 几个安卓 app 暴露超1亿用户的数据
  8. think in java第6_think-in-java/6.5 protected.md at master · quanke/think-in-java · GitHub
  9. 汉字统计--统计给定文本文件中汉字的个数。
  10. WebService的知识总结(一)
  11. 通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)
  12. MAC 如何连接惠普打印机
  13. 初中英语多词性单词怎么办_初中英语单词按词性分类表.pdf
  14. 关于fabricjs移动、放大等一些列操作后位置不对的问题
  15. 2021年最佳Selenium替代品
  16. 【Pytorch with fastai】第 11 章 :使用 fastai 的中级 API 进行数据处理
  17. 在office2010的ppt中加入音乐
  18. 微信小程序如何接入微信支付
  19. 基于arduino的ESP32 学习笔记(六)LVGL文件系统移植,中文字库和图片显示
  20. ubuntu14.04 酷我音乐盒版本

热门文章

  1. jquery表单验证
  2. Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器
  3. QT+vs2010下改变可执行程序的图标
  4. 在 Yii框架中使用session 的笔记:
  5. python如何导入seaborn_Seaborn - 导入数据集和库
  6. StarUML使用说明-指导手册
  7. java 8 update 11_从Java 8升级到Java 11应该注意的问题
  8. springmvc是什么_当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?
  9. C++中引用传递与指针传递区别(进一步整理)
  10. python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组