#1555. 正则括号

正则括号

题目描述

请判断下列是否是正则括号。 正则括号: 定义 1: 一个由 '(' 和 ')' 组成的字符串是正则括号序列,当且仅当:

从左到右扫描时,任意前缀中 '(' 的数量 ≥ ')' 的数量; 整个字符串中 '(' 与 ')' 的总数相等。 定义 2: 一个括号序列是正则的,当且仅当可以在每对匹配的括号内部填入数字 1 和加号 +,使其成为一个语法合法、值为正整数的算术表达式。

举个例子:()()可以写成(1)+(1),故其为正则括号;()(()无法写成合法的算术表达式,故其不合法;

输入格式

一行字符串,仅由字符 '(' 和 ')' 组成。字符串长度不超过2e5。

输出格式

如果输入是正则括号序列,输出 YES;否则,输出 NO。

样例

()()()(())
YES

样例可以写成(1)+(1)+(1)+(1+(1)+1),符合要求。