括号序列(栈)
来源:互联网 发布:网络歌手囚鸟的歌曲 编辑:程序博客网 时间:2024/06/03 18:35
题目描述 Description
定义满足以下规则字符串为规则序列,否则不是规则序列:
1.空序列是规则序列;
2.如果S是规则序列,那么(S),[S],{S}和<S>也是规则序列;
3.如果A和B都是规则序列,那么AB也是规则序列。
例如,下面的字符串都是规则序列:
(),[],(()),([]),()[],()[()],{{}}<>,([]<>{{}}),<<{}>>
而以下几个则不是:
(,[,],)(,()),([(),<<,{(}),<{}>)
现在,给你一些由"("、")"、"["、"]"、"{"、"}"、"<"、">"构成的字符串,请判断该字符串是否为规则序列。
输入描述 Input Description
第一行:一个正整数N,表示测试数据组数;
接下来N行:每行一个括号序列(长度不超过L)。
输出描述 Output Description
共N行:对于每一个括号序列,判断其是否规则。
规则输出TRUE,否则输出FALSE。
样例输入 Sample Input
2
{()}<<>>
{{{{{}}}}
样例输出 Sample Output
TRUE
FALSE
数据范围及提示 Data Size & Hint
对于40%数据,有N=1,0<L<=20;
对于80%数据,有0<N<=5,0<L<=10^3;
对于100%数据,有0<N<=10,0<L<=2*10^6。
#include<iostream>#include<cstring>using namespace std;string s;int n;int main(){ cin>>n; while(n--) { cin>>s; char sta[2000001],top=0; int len=s.length(); int k=0; while(k<len) { sta[++top]=s[k]; if(sta[top]-sta[top-1]==2||sta[top]-sta[top-1]==1)top-=2; k++; } if(top==0)cout<<"TRUE"<<endl; else cout<<"FALSE"<<endl; }}
0 0
- 括号序列(栈)
- Codevs 2058 括号序列(简单栈)
- [栈] brackets 括号序列
- pku1141Brackets Sequence(括号序列)
- bzoj 1095(括号序列)
- 3295: 括号序列 -(序列DP)
- 喵哈哈村的括号序列(初学栈)
- 括号序列
- 括号序列
- 括号序列
- 括号序列
- 括号序列
- 括号序列
- 括号序列
- 括号序列
- codevs2058 括号序列--栈基础应用
- bit程序设计 括号序列 栈+前缀和
- 括号序列(5倍经验)
- git 常用命令
- linux文件设置权限命令umask
- d3.js中的选择元素
- 如何实现 C 语言的继承和多态
- linux系统为什么把进程的4G地址空…
- 括号序列(栈)
- Sublime Text 3 断点调试C
- c#局域网屏幕广播二三事(2)-拆包组包
- Matlab 中打开.bdf 文件
- 《自控力》读后感
- 三种编码方式
- Openjudge2729 Blah数集(单调队列)
- 对于linux下system()函数的深度理…
- 浅析 ThreadLocal