描述现在,有一行括号序列,请你检查这行括号是否配对。

输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes
  1 #include<stdio.h>
  2 #include<string>
  3 #include<cstring>
  4 #include<iostream>
  5 using namespace std;
  6
  7 #define MaxSize 10000
  8 typedef int ElemType;
  9 typedef struct
 10 {
 11     ElemType data[MaxSize];
 12     int top;
 13 }SqStack;
 14
 15 int InitStack(SqStack &S)
 16 {//初始化顺序栈
 17     memset(S.data, 0, MaxSize);
 18     S.top = -1;
 19     return 1;
 20 }
 21
 22 int Push(SqStack &S,char ch)
 23 {//字符进栈
 24     if (S.top >= MaxSize)
 25         return 0;
 26     S.top++;
 27     S.data[S.top] = ch;
 28     return 1;
 29 }
 30
 31 char Pop(SqStack &S)
 32 {//字符出栈
 33     char ch;
 34     if (S.top < 0)
 35         return 0;
 36     ch = S.data[S.top];
 37     S.top--;
 38     //printf("Pop:: %c", ch);
 39     //printf("\n");
 40     return ch;
 41 }
 42
 43 void OutputStack(SqStack S)
 44 {
 45     for (int i = S.top; i >= 0; i--)
 46         printf("%c ", S.data[i]);
 47     printf("\n");
 48 }
 49
 50
 51
 52 int main()
 53 {//第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组
 54 //输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空
 55 //串),测试数据组数少于5组。数据保证S中只含有"[", "]", "(", ")"四种字符
 56     int N;
 57     scanf("%d", &N);
 58     getchar();//读取回车
 59
 60     string line;
 61     int len, i, tag;
 62     char now, temp;
 63     SqStack S;
 64     while (N--)
 65     {
 66         tag = 1;
 67         getline(cin, line);
 68         //cout << line << endl;
 69         len = line.length();//读入一行括号,计算字符串长度
 70         InitStack(S);//初始化栈的内容
 71         for (i = 0; i < len; i++)
 72         {
 73             now = line[i];
 74             switch (now)
 75             {
 76             case '[':Push(S, now); break;//printf("成功入栈:: "); OutputStack(S);
 77             case '(':Push(S, now); break;//printf("成功入栈:: "); OutputStack(S);
 78             default:break;
 79             }
 80
 81             if (now == ']')
 82             {
 83                 temp = Pop(S);
 84                 //printf("temp:: %c", temp);
 85                 //printf("\n");
 86                 if (temp == '[')
 87                     continue;
 88                 else
 89                 {
 90                     //printf("tag=0 :: ");
 91                     //OutputStack(S);
 92                     tag = 0;
 93                     break;
 94                 }
 95             }
 96             else if(now == ')')
 97             {
 98                 temp = Pop(S);
 99                 //printf("temp:: %c", temp);
100                 //printf("\n");
101                 if (temp == '(')
102                     continue;
103                 else
104                 {
105                     //printf("tag=0 :: ");
106                     //OutputStack(S);
107                     tag = 0;
108                     break;
109                 }
110             }
111         }
112         if (tag == 0)
113         {
114             printf("No\n");
115         }
116         else if (tag == 1 && S.top == -1)
117         {
118             printf("Yes\n");
119         }
120         else
121         {
122             printf("No\n");
123         }
124     }
125
126     return 0;
127 }
128 //_CRT_SECURE_NO_WARNINGS

转载于:https://www.cnblogs.com/mollymolly/p/6798837.html

题目2-括号配对问题相关推荐

  1. 括号配对问题_栈stack

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

  2. NYOJ 括号配对问题用容器来解决 酒馆浪人的博客

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

  3. python向文档中输入内容_python处理文档:把选择题的答案选项对应的内容填到选择题题目的括号里面输入的文本...

    需求:把选择题的答案选项对应的内容填到选择题题目的括号里面 输入的文本: 刑法的基本原则是指贯穿于刑法制定和实施全过程的根本性准则,我国刑法规定的刑法的基本原则有 (BCD ). A回避原则 B罪刑法 ...

  4. NYOJ 括号配对问题

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

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

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

  6. NYOJ2—括号配对问题

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

  7. NYOJ 2 括号配对问题

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

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

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

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

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

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

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

最新文章

  1. SpringBoot整合Spring Security
  2. 学习旧岛小程序 (4) 电影组件的实现
  3. Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
  4. Android --- 屏幕方向screenOrientation属性详解
  5. dev treeview控件_在winform中怎样实现好看的treeview样式
  6. HDU 2047 阿牛的EOF牛肉串
  7. HTML5语义化的理解
  8. 电子商务专业需要考计算机证吗,电子商务必考的证有哪些
  9. ★★★【加快】页面的【加载速度】,先减少图片请求★
  10. Flutter进阶第13篇: 打开外部浏览器、打开外部应用、拨打电话、发送短信
  11. Python常用模块-20个常用模块总结
  12. 学生学籍管理系统数据库
  13. (GIS可视化)热力图
  14. The YARN Timeline Server
  15. C# WebApi 获取今日头条新闻代码
  16. 2017年1月15日 星期日 --出埃及记 Exodus 22:5
  17. 【C语言】预处理的深入理解(第一期)
  18. Android蓝牙开发——经典蓝牙的连接
  19. python电子邮件地址怎么写_用Python发送电子邮件
  20. DNS服务器优化的几种方式

热门文章

  1. 【渝粤教育】广东开放大学 网络编程 形成性考核 (39)
  2. 【渝粤教育】广东开放大学 商务翻译实务 形成性考核 (49)
  3. 膝关节疾病时的股四头肌锻炼法及注意事项(图示)
  4. deal.II链接PETSc过程记录
  5. [题解] 2038: [2009国家集训队]小Z的袜子(hose)
  6. 【Python3 爬虫】12_代理IP的使用
  7. Aria2 - OS X 下载百度云资源神器
  8. pytest-Mark数据驱动
  9. Luogu P2664 树上游戏 dfs+树上统计
  10. 行人检测资源(上)综述文献