括号匹配(C++ Stack)
最近在学习C++,所以使用stack容器来实现括号匹配
/**********************************************************/
stack<Typet>Num; /*定义一个Typet类型的栈*/
Num.push(STR[i]); /*入栈,把元素压入栈中*/
Num.pop(); /*无返回值,弹出栈顶*/
Num.top(); /*访问栈顶元素,栈不能为空,否则报错*/
/**********************************************************/
#include <iostream>
#include <stack>
#include <stdio.h>
#include <string.h>
using namespace std;
char STR[];
int main()
{
int Len;
while(scanf("%s",STR)!=EOF) /*输入一串字符串*/
{
stack<char>Num; /*每次定义一个栈*/
Len=strlen(STR); /*求字符串长度*/
for(int i=;i<Len;i++)
{
if(!Num.empty()&&(STR[i]-Num.top()==||STR[i]-Num.top()==))/*当栈不为空且能够匹配时*/
{
Num.pop(); /*出栈*/
}
else
{
Num.push(STR[i]); /*否则入栈*/
if(STR[i]==')'||STR[i]=='}'||STR[i]==']'||STR[i]=='>')break; /*判断入栈的元素为右括号,则不需要再判断*/
}
}
if(Num.empty())printf("YES\n");/*栈为空则说明全部能够匹配*/
else printf("NO\n"); /*否则不能够匹配*/
}
return ;
}
括号匹配(C++ Stack)的更多相关文章
- 表达式括号匹配(stack)
题目描述 假设一个表达式由英文字母(小写).运算符(+.-.*./)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右括号是否匹配,若匹配,则返回“YES”:否则返回 ...
- Comet OJ 热身赛(K题)principal(括号匹配问题+stack模拟)
principal 已经提交 已经通过 23.66% Total Submission:131 Total Accepted:31 题目描述 阿尔比恩王国潜伏着代号白鸽队''的一群间谍.在没有任务的时 ...
- [原]NYOJ 括号匹配系列2,5
本文出自:http://blog.csdn.net/svitter 括号匹配一:http://acm.nyist.net/JudgeOnline/problem.php?pid=2 括号匹配二:htt ...
- POJ C程序设计进阶 编程题#4:括号匹配问题
编程题#4:扩号匹配问题 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在某 ...
- 【栈思想、DP】NYOJ-15 括号匹配(二)
括号匹配(二) 描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能 ...
- C语言数据结构之栈:括号匹配
括号匹配这是个很简单的题目,如果只有小括号,就模拟进栈和出栈的过程就行了: 注:输入时'@'作为结束标志 #include <stdio.h> int main() { freopen(& ...
- 华为笔试题--LISP括号匹配 解析及源码实现
在17年校招中3道题目AC却无缘华为面试,大概是华为和东华互不待见吧!分享一道华为笔试原题,共同进步! ************************************************ ...
- java:数据结构(二)栈的应用(括号匹配)
一.什么是括号匹配: 括号匹配就是利用计算机辨别表达式里面的括号是否书写成功 例如: {()((a)) }这就是一个正确 (()() 这就是一个错误的 二.括号匹配的算法: 众所周知,括号分为花括 ...
- poj 2955 Brackets (区间dp 括号匹配)
Description We give the following inductive definition of a “regular brackets” sequence: the empty s ...
随机推荐
- java回调机制(写的很好)
本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273) 以前不理解什么叫回调,天天听人家说加一个回调方法啥的 ...
- 基于UDP协议的网络编程
UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发送.接收数据报的对象. Java使用DatagramSock ...
- Android设置对话框去除黑边
在res/values/styles.xml文件中添加如下内容 <style name="dialog" parent="@android:style/Theme. ...
- RabbitMQ高可用配置(Haproxy + Keepalived)
网络结构如下图: 共有104.105.106三台RabbitMQ Server,互为集群 其中104和105安装了Haproxy,每个Haproxy承担三台RabbitMQ server的负载均衡 两 ...
- STS中Maven配置
最近接触maven, 配置过程中记录一下. STS是解压版的,启动后,可以看到已经有了Maven插件, , 但是,STS也同时给你了一个Maven,但是通常不建议使用STS自带的maven.使用默认的 ...
- radio的选中设置以及取值。
前台:<input type=" id="tg" name="state"/> <a style="cursor:poin ...
- win2008服务器,fastCGI完美设置教程
在WIN2008的IIS7上使用FASTCGI调用PHP-CGI.EXE,默认只有4个进程,这样对于大流量的网站为说,进程数不足带来的进程排队现象十分严重,解决方案如下.32位系统 http://ww ...
- Traffic Ccontrol(流量控制)
linux有一个成熟的带宽供给系统,称为Traffic Control(流量控制).这个系统支持各种方式进行分类.排序.共享和限制出入流量. 一.基础知识 让ip显示我们的链路 ip link li ...
- LeetCode OJ 4. Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...
- Just do it!!!
4月英语竞赛期中考试 5月初级程序员考试 6月英语四级考试 7月期末考试 加油吧年轻人!