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
@星熊童子
依然理解错了
看了好多题解,终于理解了题目。
在这里奉劝大家,放过这题,放过自己。