0507 #2 NYIST 括号配对问题
来源:互联网 发布:油库软件系统开发 编辑:程序博客网 时间:2024/06/08 12:22
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在,有一行括号序列,请你检查这行括号是否配对。
- 输入
- 第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
- 输出
- 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
- 样例输入
3[(])(])([[]()])
- 样例输出
NoNoYes
来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=2- 时间2017/5/7 22:28:51
- 目的简述:对给出的系列括号进行匹配
- 思路:
- 1-栈
- 2-括号转成数字
- 问题:不熟悉 代码居然还要debug 还找了那么久 哎 弱弱弱。
- 时间2017/5/7 22:55:51
#include <cstdio>
#include <stack>
using std::stack;
stack<int> s;
int getb(){
char t = getchar();
if(t=='\n') return 0;
if(t=='[') return 1;
if(t=='(') return 2;
if(t==')') return 3;
if(t==']') return 4;
}
int main(){
int n;
bool ans = true;
scanf("%d",&n);getchar();
int tag;
while(n--){
while(!s.empty()) s.pop();
ans=true;
while((tag=getb())!=0){
//printf("%d",tag);
if(tag<=2) s.push(tag);
else{
if(s.empty()) {
ans = false;
}else{
if(tag+s.top()==5)
s.pop();
else ans=false;
}
}
}
if(ans&&s.empty()) printf("Yes\n");
else printf("No\n");
}
return 0;
}
0 0
- 0507 #2 NYIST 括号配对问题
- 括号配对问题nyist 4h
- 2 括号配对问题
- 【括号配对问题 2】
- (2)括号配对问题
- 2 括号配对问题
- 2 括号配对问题
- 2 括号配对问题
- NYOJ 2 括号配对问题
- NYoj 2 括号配对问题
- NYOJ-2:括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2--括号配对问题
- nyoj-2-括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- 编译原理_算符优先分析方法_语法分析器_java
- Lua基础(1)--初识lua
- 用zepto去写微场景
- 输入一行字符,统计处其中英文字母、空格、数字和其他字符的个数
- 基于proteus的51单片机仿真实例四十三、C语言的字符串数组演示实例
- 0507 #2 NYIST 括号配对问题
- VMware虚拟机克隆Linux系统后找不到eth0网卡
- node.js中使用exports
- 常用排序算法-归并排序
- 5-25 最大公约数和最小公倍数 (15分)
- python ord() chr() unichr() 函数
- HTML5小demo——cat
- 基于proteus的51单片机仿真实例四十四、C语言的结构体演示实例
- 软件光栅化渲染器(五)