U334271 公司(Company)
题目背景
你是蔡老板公司的一个打工仔。现在蔡老板需要给公司取一个名字,他选定了一个串 $S$,并且决定这个名字将是串 $S$ 的某一个非空子串,不过他还没有确定具体选择哪个子串。
题目描述
蔡老板认为一个串是好的,当且仅当存在一种方式,把每个字符改成 (和),使得它形成一个合法的括号序列,并且满足每一对匹配的括号所对应的字符相同,如 ```aabaab``` 可以对应成 ```()(())```,但不能对应成 ```((()))```。\
合法的括号序列定义为:
1. 空序列是合法的括号序列
2. 如果 $A$ 和 $B$ 是合法的括号序列,则 $(A)$ 和 $AB$ 都是合法的括号序列。
蔡老板想知道有多少个 $S$ 的非空子串是好的,这里出现位置不同算作不同的子串。你作为打工仔,如果能告诉蔡老板正确的答案,蔡老板就会给你加薪。
输入格式
一行包含一个只有小写字母组成的字符串 $S$。
输出格式
输出一行表示有多少种好的子串。
说明/提示
样例1:有 $aa,bb,aabb$ 和 $abba$ 四个好的子串。
对于所有测试点 $|S| \leq 10 ^ 6$。\
对于 $20\%$ 的测试点满足 $|S| \leq 10$。\
对于 $40\%$ 的测试点满足 $|S| \leq 200$。\
对于 $70\%$ 的测试点满足 $|S| \leq 5000$。