演習課題「括弧列判定」

N 文字の 括弧列 S が与えられます。与えられた 括弧列 正しい括弧列 かどうか判定してください。

ここで、 括弧列 とは以下のように定義します。

* ( または ) または空文字のみで構成される文字列

また、 正しい括弧列 とは以下のように定義します。

1. 空文字列は正しい括弧列である。
2. 文字列 s が正しい括弧列であるとき、 ( + s + ) は正しい括弧列である。
3. 文字列 s , t が正しい括弧列であるとき、 s + t は正しい括弧列である。

たとえば、以下の文字列はすべて 正しい 括弧列です。

()
(())
()()
(()())
((((())())()))


また、以下の文字列はすべて 正しくない 括弧列です。

)(
(
())
((())
(()()))((()())()


入力される値



N
S


条件



すべてのテストケースにおいて、以下の条件をみたします。

・ N は 1 以上 50,000 未満
・ S の各文字は ( または )

期待する出力



S が正しい括弧列の場合は Yes を、正しくない括弧列の場合は No を出力してください。末尾には改行を入れ、余計な文字、空行を含んではいけません。

Yes

または
No

期待する出力値

No

※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む

#04:スタックの活用例

このチャプターでは、スタックの活用例について学習します。