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 ...
随机推荐
- ImageView的常用属性
ImageView的一些常用属性,并且这些属性都有与之对应的getter.setter方法: android:adjustViewBounds:设置ImageView是否调整自己的边界来保持所显示图片 ...
- Python之路【第十七篇】Django进阶篇
规范 确立规范的好处: 代码可读性高 方便代码的定位极其查找 为以后代码扩容带来便利 场景: 在多个APP的场景下,单个app的URL函数功能较多的时候,我们可以通过以下方法来解决. 把Views写成 ...
- 数据存储_SQLite常用的函数
一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据 ...
- Linux命令--删除软连接
1,建立软链接 ln -s 源文件 目标文件 例如:ln -s /usr/hb/ /home/hb_link 2,删除软链接 正确的是:rm -rf hb_link 错误的是:rm -rf hb_li ...
- [Machine Learning & Algorithm] 随机森林(Random Forest)
1 什么是随机森林? 作为新兴起的.高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来 ...
- Linux启动新进程的几种方法汇总
有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些 ...
- IIS相关知识
1.在web.config中,iis6使用<system.web>下配置项,iis7使用<system.webServer>下配置项 2.<httpHandlers> ...
- vim python配置 安装pep8自动检查插件,语法高亮
pep8 http://www.vim.org/scripts/script.php?script_id=2914 语法高亮 http://www.vim.org/scripts/script.php ...
- Servlet 之 HttpServlet
package cn.jiemoxiaodi.http; import java.io.IOException; import javax.servlet.GenericServlet; import ...
- connect 链接失败: 查找不到 signal
提示错误是: signal_index < 0 ;; ---- 故 connect返回false; 消除 connect 信号 ...