关于 括号序列与问号 问题的一类处理方法

启发题:https://codeforces.com/gym/104531/problem/I

判断 s t r [ l : r ] str[l:r] str[l:r] 是否合法:

  1. 把所有 ? 替换成 ‘(’,然后前缀和记为 s s s,满足任意时刻 s i ≥ s l − 1 s_i\ge s_{l-1} sisl1
  2. 把所有 ? 替换成 ‘)’,然后前缀和记为 t t t,满足任意时刻 t i ≥ t r + 1 t_i\ge t_{r+1} titr+1

注意,这是一个充要条件

分析题目时可以把 s , t s,t s,t 通过单调栈维护来弄一下奇奇怪怪的操作。

你可能感兴趣的:(括号序列)