ACM:UESTC - 649 括号配对问题 - stack
| Time Limit: 1000MS | Memory Limit: 65535KB | 64bit IO Format: %lld & %llu |
Description
大家都知道算术表达式中,括号必须配对,现在任意给出一个算术表达式,判断其括号是否配对。如果配对,输出Yes,否则输出No。
Input
含多组测试数据,输入首先是一个整数
T表示测试数据组数(





0<T≤300)。随后有
T行测试数据,长度不超过


1000个字符,字符串间不含空格。
Output
对应每组测试数据,输出一行结果。
Sample Input
2
32(78-23)+78
3278)-(23+78)
Sample Output
Yes
No
Hint
Source
/*/
简单的括号配对问题 先把给出的数字串全部变成括号串,在用栈去压入括号,每次保存栈顶括号,如果栈顶括号能和下一个括号配对,就把栈顶弹出,指括号的指针后移。 最后判断栈内是否还有元素,如果有,就说明配对不成功。 AC代码:
/*/
#include"algorithm"
#include"iostream"
#include"cstring"
#include"cstdlib"
#include"cstdio"
#include"string"
#include"vector"
#include"stack"
#include"queue"
#include"cmath"
#include"map"
using namespace std;
typedef long long LL ;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define FK(x) cout<<"["<<x<<"]\n"
#define memset(x,y) memset(x,y,sizeof(x))
#define memcpy(x,y) memcpy(x,y,sizeof(x))
#define bigfor(T) for(int qq=1;qq<= T ;qq++) const int MX=1e5+1e3; char s[MX],cc[MX],t[MX]; stack<char> st; bool check() {
int len = strlen(cc);
while(!st.empty())st.pop();
int i=0;
char stc;
while(i<len) {
st.push(cc[i++]);
stc=st.top();
while(stc=='('&&cc[i]==')'){
st.pop();
i++;
if(st.empty())break;
stc=st.top();
}
}
if(st.empty())return 0;
return 1;
} int main() {
int T;
t[0]='(',t[1]=')',t[2]='\0';
scanf("%d",&T);
bigfor(T) {
scanf("%s",s);
int len=strlen(s);
int erear=0;
for(int i=0; i<len; i++) {
if(s[i]=='('||s[i]==')') {
cc[erear++]=s[i];
}
}
cc[erear]='\0';
if(check()) {
puts("No");
} else puts("Yes");
}
return 0;
}
ACM:UESTC - 649 括号配对问题 - stack的更多相关文章
- nyoj 2 括号配对问题(stack)
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0& ...
- 【ACM】nyoj_2_括号配对问题_201308091548
括号配对问题时间限制:3000 ms | 内存限制:65535 KB 难度:3描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示 ...
- 括号配对问题_栈<stack>
问题 A: 括号配对问题 时间限制: 3 Sec 内存限制: 128 MB提交: 3 解决: 2[提交][状态][讨论版] 题目描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行 ...
- ACM 括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=1 ...
- 【ACM】括号配对问题 - 栈
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=1 ...
- Num 15: NYOJ: 题目0002 : 括号配对问题 [ 栈(stack) ]
原题连接 首先要了解有关栈的一些基本知识,即: 什么是栈,栈有什么作用: 1.什么是栈: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...
- NYOJ之括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N&l ...
- nyoj 2 括号配对问题 栈
nyoj 2 括号配对问题 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=2 思路: 栈:'(' '['入栈,遇到 ']' ')'出栈 ...
- hdoj 2 括号配对问题【数组模拟实现+STL实现】
栈遵循先进后出的原则 括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0 ...
随机推荐
- 线程GCD
#import "ViewController.h" @interfaceViewController () @end @implementation ViewController ...
- WeakReference
https://msdn.microsoft.com/en-us/library/ms404247(v=vs.110).aspx http://stackoverflow.com/questions/ ...
- js 无线弹窗
无限弹窗 function fad(action){ alert('); ht = setTimeout() } fad(); fad()能放在 $().ready() 里面,效果也一样
- mysql优化记录
老板反应项目的反应越来越慢,叫优化一下,顺便学习总结一下mysql优化. 不同引擎的优化,myisam读的效果好,写的效率差,使用场景 非事务型应用只读类应用空间类应用 Innodb的特性,innod ...
- windows7下修改hosts文件无效解决办法(转)
通常会为了开发方便.或者屏蔽掉一些恶意网站,我们会在hosts(c:\windows\system32\drivers\etc\hosts)文件中进行相应的域名指向,例:
- SSH Junit4测试
package test; import static org.junit.Assert.*; import java.util.List; import org.hibernate.SessionF ...
- Bash 中同名的内部命令和外部命令
昨天有个人在 bug-bash 上问:为什么 [ --help 没有输出帮助信息.有人回答他了,原因是 coreutils 提供的 [ 命令才接受 --help 选项,Bash 自己的 [ 命令不接受 ...
- 大熊君学习html5系列之------History API(SPA单页应用的必备------重构完结版)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ...
- mysql 主从master-slave同步复制 配置,为读写分离准备
1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...
- magic_quotes_gpc和magic_quotes_runtime的区别和用法详解
当你的数据中有一些 " ' 这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前自动加上,如 中国地大物博"哈哈" 中国\地大物博&q ...