括号配对问题

时间限制:3000 ms  |           内存限制:65535 KB
难度:3
描述
现在,有一行括号序列,请你检查这行括号是否配对。

输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes
/* 思路:通过对输入的元素配对消元,然后检查所有的元素是否都已配对消元,从而输出最终的结果
*/
#include<stdio.h>
#define N 10000+10
char s[N];int main()
{int n;char c,*p;scanf("%d\n",&n);while(n--){*s=getchar();p=s+1;while((c=getchar())!='\n'){if(*(p-1)==c-1||*(p-1)==c-2)p--;else*p++=c;}if(p==s)printf("Yes\n");elseprintf("No\n");}
}

堆栈实现:

#include<stdio.h>
#include<stdlib.h>#define OK 1
#define ERROR 0
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10typedef char SElemType;
typedef char Status;struct SqStack
{SElemType *base;SElemType *top;int stacksize;
};//初始化堆栈空间
Status InitStack(SqStack *S)
{S->base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S->base)return ERROR;S->top=S->base;S->stacksize=STACK_INIT_SIZE;return OK;
}//入栈操作
Status Push(SqStack *S,SElemType e)
{if(S->top-S->base>=S->stacksize){S->base=(SElemType*)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(SElemType));if(S->base==NULL)   return ERROR;S->top=S->base+S->stacksize;S->stacksize+=STACKINCREMENT;}*S->top++=e;       return OK;
}//入栈操作
Status Pop(SqStack *S,SElemType *e)
{if(S->top==S->base)return ERROR;*e=*(--S->top);    return OK;
}//得到栈顶元素
Status GetTop(SqStack *S,SElemType *e)
{if(S->top==S->base){*e='\0';    //栈空取回 '\0'return ERROR;}*e=*(S->top-1);return OK;
}Status StackEmpty(SqStack *S)
{if(S->top==S->base)return 0;elsereturn 1;
}int main()
{SqStack S;     int n;char a,b,c;scanf("%d",&n);    getchar();if(InitStack(&S)){while(n--){       while(1){a=getchar();   //putchar(a);if(a=='\n')break;GetTop(&S,&b);if(a==b+1 || a==b+2){Pop(&S,&c);//   printf("遇%c出栈操作 \n",a);} else{Push(&S,a);//   printf("遇%c入栈操作 \n",a);               }}if(!StackEmpty(&S)){printf("Yes\n");}else {printf("No\n");}S.top=S.base;}    }}

NYOJ 2 括号配对问题相关推荐

  1. NYOJ 括号配对问题

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

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

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

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

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

  4. 括号配对问题_栈stack

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

  5. NYOJ2—括号配对问题

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

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

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

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

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

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

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

  9. 【ACM】括号配对问题 - 栈

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

最新文章

  1. 2022-2028年中国云服务市场深度调研及投资前景预测报告
  2. java加载驱动没有异常显示_java – Tomcat没有加载MSSQL驱动程序
  3. android drawerlayout 遮罩层白色,DrawerLayout放在Toolbar的下方导致NavigationView出现与状态栏等高的遮...
  4. C++ Map用法详解
  5. DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测
  6. const char * 和 char const * 和 char * const 区别
  7. gbk文件转为utf8文件
  8. 【插件开发】—— 1 Eclipse插件开发导盲
  9. AI理论知识基础(25)-机器学习常见损失函数, 共轭梯度法(1)
  10. JDBC的CRUD操作之PreparedStatement的查询操作
  11. 分布式理论CAP定理
  12. 漫步数学分析三十五——乘法法则与梯度
  13. linux 更改配置文件 禁止ssh,配置linux用户实现禁止ssh登陆但可用sftp登录
  14. 克服跨洋网络延迟,使用Docker Hub Mirror加速Docker官方镜像下载
  15. java中的定时任务
  16. python 导入数据集并画图_python matplotlib画图教程学习:(三)IRIS数据集作图
  17. hdb3编码规则波形_(完整word版)AMI与HDB3码波形与功率谱密度实验
  18. c语言工程师专业分析,一个资深c语言工程师说如何学习c语言.pdf
  19. 点点点工程师自我提升运维方向----shell编程基础知识盘点
  20. xpath helper用法

热门文章

  1. android jpush json,发送了正确的JPush json却报1002
  2. Spring Boot框架敏感信息泄露的完整介绍与SRC实战(附专属字典与PoC)
  3. 计算机网络和通信,计算机网络与通信技术
  4. android 布局防抖动,Android全屏返回布局抖动问题
  5. 服务器物理部署拓扑图,【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(五)-物理服务器路由方案及配置...
  6. 自己写了一个多行文本溢出文字补全的小库, 说不定你会用得到的
  7. position:fixed 兼容浏览器低版本
  8. 行内元素,块级元素,各自特点及其相互转化
  9. 移动架构-数据库分库和全版本升级
  10. 智能小车37:异常在ARM、JAVA、硬件里的实现