AT_abc312_d [ABC312D] Count Bracket Sequences

题目描述

给定一个非空字符串 $S$,其中每个字符都是 `(`、`)` 或 `?` 之一。 如果 $S$ 中包含 $x$ 个 `?`,那么将每个 `?` 替换为 `(` 或 `)` 可以得到 $2^x$ 种新的字符串。请你计算,在这些替换方式中,使得新字符串成为**括号序列**的方案数,并输出其对 $998244353$ 取模的结果。 括号序列定义如下: - 空字符串; - 存在某个括号序列 $A$,将 `(`、$A$、`)` 按顺序连接得到的字符串; - 存在某些非空括号序列 $A, B$,将 $A, B$ 按顺序连接得到的字符串。

输入格式

输入为标准输入,格式如下: > $S$

输出格式

请输出答案。

说明/提示

## 限制条件 - $S$ 是一个长度不超过 $3000$ 的非空字符串,仅由 `(`、`)`、`?` 组成。 ## 样例解释 1 将 $S$ 替换为 `()()()` 或 `(())()` 时,可以得到括号序列。除此之外,没有其他替换方式能得到括号序列,因此输出 $2$。 ## 样例解释 3 请输出对 $998244353$ 取模的结果。 由 ChatGPT 4.1 翻译