专栏文章

题解:AT_abc428_c [ABC428C] Brackets Stack Query

AT_abc428_c题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minkaj9m
此快照首次捕获于
2025/12/02 03:48
3 个月前
此快照最后确认于
2025/12/02 03:48
3 个月前
查看原文
简单的括号匹配问题,这里介绍不用栈的方法。
挨个处理操作。把字符串的 ( 当成 11) 当成 1-1,照此转化为数组。那么容易处理出当前字符串转换后的元素和 sumsum。显然,若 sum0sum \ne 0 时,答案一定为 No
显然,就算在 sum=0sum=0 的情况下,若当前字符串转化成数组后的前缀和一旦出现负数,那么答案必定为 No。考虑如何处理这种情况。
当我们在某次操作时发现 sum<0sum<0,便记录其位置(我的代码中是以记录它的位置和当前操作位置的距离来实现的),并标记前缀和有负,答案只能为 No。直到该位置被删除,才解除标记。
显然可以只记录最早的负前缀和(即小于 00 的前缀和)的位置,因为当最前面的负前缀和被删除时,那么它后面的负前缀和肯定也被删除,便不再存在负前缀和了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...