题目重新理解

P1241 括号序列

sunxiaofan @ 2022-02-09 16:49:40

这个题目恶心到我了,总算是过了。下面写一下我对题目含义的个人理解,希望是对的。

扫一遍这个括号序列,每遇到一个右括号,如‘]’‘)’,就找上一个没有被匹配过的左括号。如果这两个括号是可以匹配的,则匹配;如果不能匹配,则不管这个右括号,继续向右扫。整个序列扫完一遍之后,再扫一遍。如果遇到没有匹配过的左括号或者右括号,直接输出一对括号。

提供两组样例:

样例一:

([)]

输出:

()[()]

解释:

读入时,遇到的第一个右括号是第3位的‘)’,但是上一个没有被匹配过的左括号是第2位的‘[’,所以不管这个右括号。继续,下一个右括号是第4位的‘]’,上一个没有匹配过的左括号还是第2位的‘[’,所以匹配成功。
第一遍匹配结束之后,第1位的‘(’和第3位的‘)’是没有被匹配过的,所以在原位变成一对。

样例二:(其实也是本题的测试点一)

([(]

输出:

()[]()[]

希望能为看到这个帖子的大佬们节省一些时间。


by 子小木木 @ 2022-02-11 19:43:45

啊这。。。题面毒瘤啊


by wyl13479387613 @ 2022-02-11 21:49:43

个人认为题面没问题,建议认真审题~~~~


by hyf9134 @ 2022-03-08 00:02:17

感谢大佬。


by 算法拾遗 @ 2022-04-03 12:10:29

@wyl13479387613 这个“补全括号”就很具有歧义,比如说:

([)]

可以这样补全:

\Big()\Big[(\Big)\Big]

也可以这样补全:

\Big(\Big[]\Big)[\Big]

甚至可以这样补全:

\Big(\Big[(\Big)\Big])

题目根本就没有定义哪个“补全”才是真正的补全

强烈建议洛谷修改题面


by DiDi123 @ 2022-04-16 11:32:18

感谢大佬


by DM11 @ 2022-04-29 20:45:31

题面根本没讲清楚是怎么个补全法


by Freuds @ 2022-04-30 11:56:40

@sunxiaofan 切中肯綮了


by 图书管理员 @ 2022-06-16 15:38:43

谢谢你,按照你这个来做就很简单,一下子就A了


by hate_fake_world @ 2022-11-28 16:14:34

%%%%%%%%阿里嘎多!


by Etsuya233 @ 2023-01-27 15:10:57

谢谢你%%%%%


|