問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
N 文字の 括弧列 S が与えられます。与えられた 括弧列 が 正しい括弧列 かどうか判定してください。
ここで、 括弧列 とは以下のように定義します。
* (
または )
または空文字のみで構成される文字列
また、 正しい括弧列 とは以下のように定義します。
1. 空文字列は正しい括弧列である。
2. 文字列 s
が正しい括弧列であるとき、 (
+ s + )
は正しい括弧列である。
3. 文字列 s
, t
が正しい括弧列であるとき、 s
+ t
は正しい括弧列である。
たとえば、以下の文字列はすべて 正しい 括弧列です。
()
(())
()()
(()())
((((())())()))
)(
(
())
((())
(()()))((()())()
N
S
S が正しい括弧列の場合は Yes
を、正しくない括弧列の場合は No
を出力してください。末尾には改行を入れ、余計な文字、空行を含んではいけません。
Yes
No
すべてのテストケースにおいて、以下の条件をみたします。
・ N は 1 以上 50,000 未満
・ S の各文字は (
または )
4
(())
Yes
2
)(
No
14
((((())())()))
Yes