#3751. [USACO12Nov] Typo B
[USACO12Nov] Typo B
题目描述
Bessie刚买了一台新笔记本电脑,但由于她的大蹄子相对于小键盘来说太大了,打字不太方便。她尝试输入自己最喜欢的平衡括号字符串,但可能打错了一个字符——将'('误输入为')'或反之。请帮助Bessie计算字符串中有多少个位置,如果反转该位置的单个括号(将'('改为')'或反之),会使整个字符串变为平衡的。
平衡括号字符串的定义:
- '('和')'的总数相同
- 对于任何前缀字符串,'('的数量不少于')'的数量
输入格式
一行:一个长度为N(1 ≤ N ≤ 100,000)的括号字符串
输出格式
一行:满足条件的位置数量
输入输出样例
输入 #1
()(())))
输出 #1
4
样例解释
输入字符串:()(()))) 位置索引:12345678
满足条件的位置:
- 位置2:反转后变为(((())))(平衡)
- 位置5:反转后变为()((())))(平衡)
- 位置6:反转后变为()(()())))(平衡)
- 位置7:反转后变为()(())()))(平衡)
因此共有4个位置满足条件。