注意,本题没有 spj

P1241 括号序列

smallC233 @ 2021-10-05 15:42:23

而且感觉题意交代的不是很清楚,只讲

在以这种方式把原序列匹配完成后,把剩下的未匹配的括号补全。

但没说明怎么去补全。

反正答案是没匹配上的的括号紧挨着自己补全,而非留到最后补上。

如:(] 可以补成 ([]) 也可以补成 ()[],但答案只取了后者

如果你和我一样把没匹配的左括号留在栈里,第二次循环再往后添加的话就只有62了qwq(感觉这题绝对要添加 spj 吧,要不然说明也要更清楚一点啊qwq)

样例

输入:

([)]

输出:

([()])  WA
()[()]  AC

by eEfiuys @ 2021-10-05 18:01:06

@smallC233 扫描一遍原序列,对每一个右括号,找到在它左边最靠近它的左括号匹配,如果没有就放弃。在以这种方式把原序列匹配完成后,把剩下的未匹配的括号补全。


by smallC233 @ 2021-10-05 18:19:05

@初一徐逸飞 对啊,但是题目没有说剩下未匹配的括号如何补全(或者是对“补全”一词的理解不同,我感觉把 ( [ ] 变成 ( [ ] ) 也是对 '(' 的一种补全qwq)容易对我造成歧义


by qwq___qaq @ 2021-10-06 13:54:00

@chen_zhe 建议改一下(我随便输出一种得了70)


by Warfarin @ 2022-01-18 16:53:11

真是见鬼!这题目讲了个鸡腿哦!

刚看完题目,跑到讨论区,看到这个帖子,心满意足地离开了。

然后自己依然WA了之后,回来又看了一遍帖子。你这边探讨的只是剩下的括号如何补齐,这扫描怎么还是从右向左扫描的哦!

输入:

([)]

输出:

([()]) //WA
()[()] //AC
([])[] //WA

by Warfarin @ 2022-01-18 18:06:42

@星熊童子

依然理解错了

看了好多题解,终于理解了题目。

在这里奉劝大家,放过这题,放过自己。


|