括号配对问题 -- ACM解决方法
括号配对问题 (栈的使用)
描述
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数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解决方法相关推荐
- 关于EndNote 中文GB/T7144文献页码及括号不全的解决方法
今天使用Endnote插参考文献的时候,发现参考文献的页码显示不全,它自动省略了前面相同的位数,例如下图: 解决办法如下: 打开EndNote中的[Edit]-[Output Styles]-选中[C ...
- 6174问题 --ACM解决方法
6174问题 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得4321-123 ...
- 笨小熊 -- ACM解决方法
描述 笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的 ...
- A+B Problem III -- ACM解决方法
A+B Problem III 描述 求A+B是否与C相等. 输入 T组测试数据. 每组数据中有三个实数 A,B,C(-10000.0<=A,B<=10000.0,-20000.0< ...
- 汉诺塔V - ACM解决方法
Problem Description 用1,2,...,n表示n个盘子,称为1号盘,2号盘,....号数大盘子就大.经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故. ...
- Cake -- ACM解决方法
一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食. Input 每行有两个数p和q ...
- -又见GCD -- ACM解决方法
有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n,表示有n组测试数据,接下来 ...
- ACM试题 - 括号配对问题 - Java中字符串截取和定位问题
ACM试题题源(括号配对问题):http://acm.nyist.net/JudgeOnline/problem.php?pid=2 提交代码: import java.util.Scanner;pu ...
- NYOJ 括号配对问题用容器来解决 酒馆浪人的博客
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100), ...
最新文章
- mysql时间日期操作
- UA MATH566 统计理论7 另一个例子:二项检验
- Python文件操作IO open 读-取-写
- Service Unavailable HTTP Error 503. The service is unavailable.
- oracle biee
- 模拟微信自动化发送(微信公众号文章自动点击)
- 8s nfs 挂载文件_Kubernetes集群使用网络存储NFS
- pythonfor循环是迭代器吗_[Python] 迭代器是什么?你每天在用的for循环都依赖它!...
- fread函数在C语言中的用法,c语言fread函数的用法
- Android知识大纲梳理
- 计算机考研专业课资料百度云,考研专业课资料(一)
- 周期信号的傅里叶级数
- android 指南针图片,如何在android中制作自定义指南针视图
- C语言——函数定义及用法【内部函数外部函数内联函数】
- TI GEL文件作用
- Elasticsearch语法大全
- ​巴比特发布2020年数据报告:平台年度阅读量突破16亿,活跃作者超500名
- Python海龟画图
- 把Bing改为锁屏键
- php中define的参数_php中define的含义及用法详解
热门文章
- MUI调用原生自定义方法实现计算缓存与清空缓存
- LeetCode的二分查找的练习部分总结
- Java开发人员的升级之路
- 模型驱动 ModelDriven
- 用python下载辞典
- 【Linux学习篇】This virtual machine is configured for 64-bit guest operating systems.……
- 菜鸟nginx源码剖析
- 简述WebService与.NET Remoting的区别及适应场合
- mysql数据库工程师网易微专业_网易MySQL数据库工程师微专业学习笔记(五)
- java定义js函数_JS中可以先使用函数,然后再定义.