题目链接:http://acm.ayit.edu.cn/contest/12/problem/50
分析:保证括号的全部匹配,可以通过入栈和出栈的操作,最终通过判断栈是否为空来判断是否为合法的括号序列。

用数组模拟栈:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char a[100005],st[100005];
int main(){scanf("%s",a);int len=strlen(a);int t=0;for(int i=0; i<len; i++){if(a[i]=='('||a[i]==')'||a[i]=='{'||a[i]=='}'||a[i]=='['||a[i]==']'){if(a[i]==')'&&st[t-1]=='(')t--;/*出栈操作*/else if(a[i]=='}'&&st[t-1]=='{')t--;else if(a[i]==']'&&st[t-1]=='[')t--;elsest[t++]=a[i];/*入栈操作*/}}if(t==0)printf("YES\n");elseprintf("NO\n");return 0;
}

用stack堆栈容器

#include<cstdio>
#include<cstring>
#include<stack>
#include<algorithm>
using namespace std;
int main() {stack<char>q;char a[100001];scanf("%s",a);int len=strlen(a);for(int i=0; i<len; i++) {if(q.empty()) {q.push(a[i]);continue;}int x=q.top();/*访问栈顶元素*/if(x=='('&&a[i]==')')q.pop();else if(x=='{'&&a[i]=='}')q.pop();else if(x=='['&&a[i]==']')q.pop();elseq.push(a[i]);}if(q.empty())printf("YES\n");elseprintf("NO\n");return 0;
}

出来混,迟早要还的。

验证括号的匹配(艾伦图灵的栈操作)相关推荐

  1. python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...

    算法 数据结构 数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题 在平时写程序当中,我们会经常遇到程序当中括号的匹配问题,也就是在程序当中左括号的数量和右括号的数量必须相等.如 ...

  2. LeetCode Valid Parentheses(判断括号是否匹配)

    题意:给出(,[,{,),],}括号组成的字符串, 判断括号是否匹配 思路:用栈结构判断 1.如果是(,[,{,将其入栈 2.如果遇到),],},看栈是否为空.栈顶元素是否对应为(,[,{ 3.将字符 ...

  3. 第2关:利用栈判断字符串括号是否匹配

    #ifndef stack__h #define stack__h#include <stdio.h> #include <stdlib.h>typedef char T; / ...

  4. python 判断括号是否匹配_使用Python实现一个栈判断括号是否平衡

    栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top). 举个例子,栈就想一摞洗干净的盘子,你每次取一个新盘子,都是放在这一摞盘子的最上头,当你往里 ...

  5. 回文数、括号匹配(栈操作)

    回文数 "xyzyx"是一个回文字符串,所谓回文字符串就是指正读反读均相同的字符序列,如"席主席"."记书记"."aha" ...

  6. 双针模型:验证括号,特殊case处理

    我们知道双针:一般形式,两个指针都从左到右扫描,或者一头一尾两边朝中间扫描,或者在两个数组里扫描 验证括号,这个问题:一个指针扫描当前数组,另一个指针指向的是栈顶元素,也是双针模型的一种变形. 从这里 ...

  7. 【人工智能】数据科学2019发展趋势有哪些?计算机先驱艾伦•图灵这样说!

    数据科学和分析领域在2018年的主要发展有哪些?2019年的主要趋势又如何?本文推荐业内12位大牛的观点,一起来看看他们是如何评价的吧! Meta Brown, @metabrown312, < ...

  8. 数据结构算法——判断表达式中的括号是否匹配

    元旦三天假,闲着没事干,就想着复习一下学数据结构时的那些算法吧.本来是想用C语言来写的,无奈啊,三四年没用C了,基本上忘光光,还是用C#来写吧,而且.Net基类库中已经有了栈.队列等的实现,直接拿来用 ...

  9. 数据结构上机实践第五周项目3 - 括号的匹配

    括号的匹配 本次实践将用到顺序栈的算法库,点击此处参考. 本次实践要求: 假设表达式中允许三种括号:圆括号.方括号和大括号.编写一个算法,判断表达式中的各种左括号是否与右括号匹配.  例如,输入2+( ...

最新文章

  1. 电脑qq收藏在哪里_电脑突然死机了怎么办?几种常见电脑故障及其解决方法
  2. itext转html为pdf 锚点,ITEXT输出pdf..docx
  3. 论文笔记之:Instance-aware Semantic Segmentation via Multi-task Network Cascades
  4. Java常见面试题及答案汇总
  5. python plt 批量修改全局样式
  6. 微软职位内部推荐-UX Designer II
  7. Keycloak服务器安装和配置
  8. 畅管进销存管理系统 v6.0
  9. 身份证前6位编码与地址对应关系表
  10. cad插入块_CAD中块插入点定义错了,插入位置不对怎么办?
  11. 爬虫网页框架代码和媒体对象
  12. 服务器有无线网卡么,全面认识服务器网卡:理论篇
  13. 想学Python,这68个内置函数你一定要搞定!
  14. 发起AI联盟,天猫精灵CES布局智能家居市场
  15. ppt复制切片器_手把手教你使用Excel切片器,小白也能做出好看又好玩的动态图表...
  16. 什么是嵌入式开发?初学者必看嵌入式学习课程
  17. java编译类代码_Java的源代码中定义几个类,编译结果就生成几个以“.class”后缀的字节码。...
  18. git拉取远程分支代码到本地并关联分支
  19. 树莓派:基于物联网的指纹打卡器
  20. 深度学习之目标检测综述

热门文章

  1. 海思linux中编译,linux 编译安桌系统 海思
  2. 权限管理工具的使用方法
  3. 专转本计算机操作题库,专转本计算机题库
  4. Revit2016 笔记10 - Revit标注
  5. 【003】中国主要城市交通健康榜-实时获取城市拥堵数据
  6. 找不到msvcp140.dll无法继续执行代码,要怎么去解决?
  7. 热电偶与热电阻测温原理比较
  8. 在python中filter是什么意思_python中的filter函数功能是什么?
  9. PyQt5 绘制画 线(鼠标笔)
  10. 自然语言处理NLP--TextRank算法