#YMONI260104. 区间翻转
区间翻转
区间翻转
题目描述
给定一个长度为 、仅由字符 ( 和 ) 组成的字符串 。
你需要选择一个非空区间 \([l,r]\),并将区间内的每个括号反转:
(变为);)变为(。
若操作后的整个字符串是合法括号序列,则称区间 是合法的。
一个括号序列合法,当且仅当:
- 任意前缀中,左括号数量不少于右括号数量;
- 整个字符串中,左括号与右括号数量相等。
求合法区间的数量。
输入格式
从文件 invert.in 中读入数据。
第一行一个整数 。
第二行一个长度为 的括号字符串 。
输出格式
输出到文件 invert.out 中。
输出一个整数,表示合法区间的数量。
样例
输入:
4
()()
输出:
1
数据规模与约定
对于所有数据:
- ;
- 字符串仅包含
(和)。 - 原始字符串 是合法括号序列。
本题采用子任务测试。
| 测试点 | 分值 | 限制 | 特性 |
|---|---|---|---|
| 1-2 | 10 | 无 | |
| 3-4 | |||
| 5-6 | 前面一半是(,后面一半是) | ||
| 7-8 | ()交替出现 | ||
| 9-10 | 假设有k块,每块都是个(,和个) | ||
| 11-12 | |||
| 13-14 | ()交替出现 | ||
| 15-16 | 假设有k块,每块都是个(和个) | ||
| 17-18 | 前面一半是(,后面一半是) | ||
| 19-20 |
相关
在下列比赛中: