#aBC283Did331. [ABC283D] Scope

[ABC283D] Scope

AT_abc283_d [ABC283D] Scope

题目描述

在由小写英文字母、() 组成的字符串中,若可以通过以下步骤变为空字符串,则称其为好字符串

  • 首先,删除所有小写英文字母。
  • 然后,只要存在连续的 (),就将其删除。

例如,((a)ba) 删除所有小写英文字母后变为 (()),然后删除第 22 和第 33 个字符的连续 () 后变为 (),最终可以变为空字符串,因此是好字符串。

给定一个好字符串 SS,第 ii 个字符记为 SiS_i

对于每个小写英文字母 ab\ldotsz,各有一个写有该字母的小球,并有一个空箱子。

高桥君按照 i=1,2,,Si = 1, 2, \ldots, |S| 的顺序,依次进行如下操作,除非他晕倒:

  • 如果 SiS_i 是小写英文字母,则将写有该字母的小球放入箱子中。如果该小球已经在箱子中,高桥君会晕倒。
  • 如果 SiS_i(,则什么也不做。
  • 如果 SiS_i),则取 ii 之前的整数 jj,使得 SS 的第 jj 到第 ii 个字符组成的字符串为好字符串,且 jj 最大(可以证明这样的 jj 一定存在)。将第 jj 到第 ii 步操作中放入箱子的所有小球从箱子中取出。

请判断高桥君能否在不晕倒的情况下完成所有操作。

输入格式

输入为以下格式,从标准输入读入。

SS

输出格式

如果高桥君能在不晕倒的情况下完成所有操作,输出 Yes,否则输出 No

输入输出样例 #1

输入 #1

((a)ba)

输出 #1

Yes

输入输出样例 #2

输入 #2

(a(ba))

输出 #2

No

输入输出样例 #3

输入 #3

(((())))

输出 #3

Yes

输入输出样例 #4

输入 #4

abca

输出 #4

No

说明/提示

限制

  • 1S3×1051 \leq |S| \leq 3 \times 10^5
  • SS 是好字符串

样例解释 1

i=1i = 1 时,高桥君什么也不做。i=2i = 2 时,高桥君什么也不做。i=3i = 3 时,高桥君将写有 a 的小球放入箱子。i=4i = 4 时,44 之前最大的 jj 使得 SS 的第 jj 到第 44 个字符组成好字符串是 22,因此高桥君将写有 a 的小球从箱子中取出。i=5i = 5 时,高桥君将写有 b 的小球放入箱子。i=6i = 6 时,高桥君将写有 a 的小球放入箱子。i=7i = 7 时,77 之前最大的 jj 使得 SS 的第 jj 到第 77 个字符组成好字符串是 11,因此高桥君将写有 ab 的小球从箱子中取出。因此本例答案为 Yes

样例解释 2

i=1i = 1 时,高桥君什么也不做。i=2i = 2 时,高桥君将写有 a 的小球放入箱子。i=3i = 3 时,高桥君什么也不做。i=4i = 4 时,高桥君将写有 b 的小球放入箱子。i=5i = 5 时,写有 a 的小球已经在箱子中,因此高桥君晕倒,后续操作不再进行。因此本例答案为 No

由 ChatGPT 4.1 翻译