题目名称 | 1214. [Tyvj Aug11] 括号匹配 |
---|---|
输入输出 | kakko.in/out |
难度等级 | ★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 5 |
题目来源 | Makazeu 于2012-10-24加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:29, 提交:149, 通过率:19.46% | ||||
再见 | 100 | 0.182 s | 17.46 MiB | C++ |
Makazeu | 100 | 0.255 s | 0.31 MiB | C++ |
rvalue | 100 | 0.269 s | 2.22 MiB | C++ |
wsp | 100 | 0.318 s | 0.19 MiB | C++ |
wsp | 100 | 0.329 s | 0.19 MiB | C++ |
苏轼 | 100 | 0.348 s | 0.31 MiB | C++ |
wolf | 100 | 0.349 s | 9.85 MiB | C++ |
苏轼 | 100 | 0.356 s | 0.32 MiB | C++ |
wsp | 100 | 0.368 s | 0.31 MiB | C++ |
wsp | 100 | 0.428 s | 0.25 MiB | C++ |
本题关联比赛 | |||
暑假综合模拟2 |
关于 括号匹配 的近10条评论(全部评论) | ||||
---|---|---|---|---|
改用fin和fout
| ||||
写代码要循序渐进,就这样。ps(我的代码好慢QAQ...)
| ||||
1000 0000的数据吃了不少内存,题目上竟然没说!!
wolf
2014-04-19 22:08
2楼
| ||||
在tyvj上超時了。。。在COGS上AC了。。。無語。。
|
定义如下括号匹配序列:
1.空序列是匹配序列;
2.如果S是匹配序列,那么(S),[S],{S}和也是匹配序列;
3.如果A和B都是匹配序列,那么AB也是匹配序列。
例如,下面的字符串都是匹配序列:
(),[],(()),([]),()[],()[()],{{}}<>,([]<>{{}}),<<{}>>
而以下几个则不是:
(,[,],)(,()),([(),<<,{(}),<{}>)
序列中可能包含通配符,含义如下:
/表示任意1个左括号
#表示任意2个左括号
@表示任意4个左括号
?表示任意8个左括号
\表示任意1个右括号
*表示任意2个右括号
&表示任意4个右括号
!表示任意8个右括号
现在,给你一些由"("、")"、"["、"]"、"{"、"}"、"<"、">"和通配符构成的序列,你要做的,是判断该序列是否为匹配序列。
第一行:一个正整数N,表示测试数据组数;
接下来N行:每行一个括号序列(长度不超过L)。
共N行:对于每一个括号序列,判断其是否匹配。
对于不匹配的序列,直接输出FALSE。
对于匹配的序列,输出用单一空格隔开的3个信息:第一个信息为TRUE,第二个信息为括号的最大深度(层数),第三个信息为达到最大深度的次数。
3 {()}@<>{})))> ([}) ?\\\\\\\]
TRUE 5 2 FALSE TRUE 8 1
对于第一组数据,@相当于<(((,是匹配的,括号的最大深度为5,该深度出现了2次。
对于第二组数据,[和}不匹配。
第三组数据想要说明的是,通配符间可以匹配。
对于20%的数据,有N=1,0<L≤20。
对于60%的数据,有0<N≤5,0<L≤2e3。
From TYVJ八月月赛提高组第1题 http://www.tyvj.cn/Problem_Show.aspx?id=1590