括号配对问题 (栈的使用)

描述

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

输入

第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数 据保证S中只含有"[","]","(",")"四种字符

输出

每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No

样例输入

3
[(])
(])
([[]()])

样例输出

No
No
Yes

=============================================================================================

解题思路

首先判断奇偶性,再将‘(’与‘[’入栈,依次判断是否能配对,能配对的出栈,否则就是不满足的情况,停止循环。

=============================================================================================

代码如下:

#include <stdio.h>
#include <string.h>
int main (void)
{int n,len,i,j,k,flag;char ch[10000],top[10000];while(scanf("%d",&n) != EOF){while(n--){flag = 1;k=0;scanf("%s",ch);len = strlen(ch);if(len%2){printf("No\n");break;}for(i=0;i<len;i++){if(ch[i]=='[' || ch[i]=='(')top[k++] = ch[i];else if (ch[i]==']' && top[k-1]=='[' || ch[i]==')' && top[k-1]=='(')k--;else{flag = 0;break;}}if(flag)printf("Yes\n");elseprintf("No\n");}}return 0;
}

括号配对问题 -- ACM解决方法相关推荐

  1. 关于EndNote 中文GB/T7144文献页码及括号不全的解决方法

    今天使用Endnote插参考文献的时候,发现参考文献的页码显示不全,它自动省略了前面相同的位数,例如下图: 解决办法如下: 打开EndNote中的[Edit]-[Output Styles]-选中[C ...

  2. 6174问题 --ACM解决方法

    6174问题 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得4321-123 ...

  3. 笨小熊 -- ACM解决方法

    描述 笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的 ...

  4. A+B Problem III -- ACM解决方法

    A+B Problem III 描述 求A+B是否与C相等. 输入 T组测试数据. 每组数据中有三个实数 A,B,C(-10000.0<=A,B<=10000.0,-20000.0< ...

  5. 汉诺塔V - ACM解决方法

    Problem Description 用1,2,...,n表示n个盘子,称为1号盘,2号盘,....号数大盘子就大.经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故. ...

  6. Cake -- ACM解决方法

    一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食. Input 每行有两个数p和q ...

  7. -又见GCD -- ACM解决方法

    有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n,表示有n组测试数据,接下来 ...

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

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

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

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

最新文章

  1. mysql时间日期操作
  2. UA MATH566 统计理论7 另一个例子:二项检验
  3. Python文件操作IO open 读-取-写
  4. Service Unavailable HTTP Error 503. The service is unavailable.
  5. oracle biee
  6. 模拟微信自动化发送(微信公众号文章自动点击)
  7. 8s nfs 挂载文件_Kubernetes集群使用网络存储NFS
  8. pythonfor循环是迭代器吗_[Python] 迭代器是什么?你每天在用的for循环都依赖它!...
  9. fread函数在C语言中的用法,c语言fread函数的用法
  10. Android知识大纲梳理
  11. 计算机考研专业课资料百度云,考研专业课资料(一)
  12. 周期信号的傅里叶级数
  13. android 指南针图片,如何在android中制作自定义指南针视图
  14. C语言——函数定义及用法【内部函数外部函数内联函数】
  15. TI GEL文件作用
  16. Elasticsearch语法大全
  17. ​巴比特发布2020年数据报告:平台年度阅读量突破16亿,活跃作者超500名
  18. Python海龟画图
  19. 把Bing改为锁屏键
  20. php中define的参数_php中define的含义及用法详解

热门文章

  1. MUI调用原生自定义方法实现计算缓存与清空缓存
  2. LeetCode的二分查找的练习部分总结
  3. Java开发人员的升级之路
  4. 模型驱动 ModelDriven
  5. 用python下载辞典
  6. 【Linux学习篇】This virtual machine is configured for 64-bit guest operating systems.……
  7. 菜鸟nginx源码剖析
  8. 简述WebService与.NET Remoting的区别及适应场合
  9. mysql数据库工程师网易微专业_网易MySQL数据库工程师微专业学习笔记(五)
  10. java定义js函数_JS中可以先使用函数,然后再定义.