首页 > 试题广场 >

小红的可爱括号串

[编程题]小红的可爱括号串
  • 热度指数:44 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\,\,\,\,\,\,\,\,\,\,小红有一个长度为 n 的括号串,仅包含左括号和右括号。如果一个括号串长度为偶数,并且左半部分都是左括号,右半部分都是右括号,左括号的数量和右括号的数量相等,那么这个括号串就是可爱的括号串。
\,\,\,\,\,\,\,\,\,\,现在小红想知道给定的括号串中有多少个子序列组成的括号串是可爱的。

\,\,\,\,\,\,\,\,\,如果字符串 t 可以通过删除字符串 s 中的若干(可能为零或全部)元素得到,则字符串 t 是字符串 s子序列

输入描述:
\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n\ (2 \leq n \leq 10^5) 表示括号串的长度。
\,\,\,\,\,\,\,\,\,\,第二行输入一个长度为 n ,且仅包含左右括号的括号串。


输出描述:
\,\,\,\,\,\,\,\,\,\,输出一个整数,表示给定的括号串中有多少个子序列组成的括号串是可爱的。由于答案可能很大,请将答案对 (10^9+7) 取模后输出。
示例1

输入

4
(())

输出

5

说明

\,\,\,\,\,\,\,\,\,\,存在 4 个长度为 2 的子序列是可爱括号串,存在 1 个长度为 4 的子序列是可爱括号串。
示例2

输入

10
()((())()(

输出

36
示例3

输入

4
))((

输出

0

这道题你会答吗?花几分钟告诉大家答案吧!