2059 - Coding_Kamba君

時間制限 2 秒 / メモリ制限 256 MB / 得点 74 / Writer ei2437 / x 9 / 統計 /


TLE
2sec
MLE
256MB
得点
74

問題

Kamba君はとある競技プログラミングの問題を解いています。Kamba君が問題を解くのに使用しているプログラミング言語のルールの一部として「括弧に関するルール」があります。
そこで、Kamba君が作成したコードの一部が文字列として与えられます。その文字列が「括弧に関するルール」に従い、構文的に正しい括弧構造を持っているならば Yes を出力し、そうでないならば、No を出力してください。

括弧に関するルール

  • 開き括弧 (, {, [ に対して、閉じ括弧 ), }, ] が順番通りに過不足なく存在していること。
    • 良い例1 : (){}[]
    • 良い例2 : ()()
    • 悪い例1 : (]{)[}
    • 悪い例2 : ()(
  • 括弧を使用する場合は、必ず開き括弧から始めなければならない。
    • 良い例 : ()
    • 悪い例 : )(
  • 括弧は入れ子構造になっていても構わない。
    • 例1 : ((()))
    • 例2 : ({[]})
  • 括弧の中に文字が含まれていても構わない。
    • 例 : (abcABC123)

入力

入力は以下の形式で標準入力から与えられる。

$S$

文字列 $S$ が与えられる。

出力

出力の最後に改行を入れること。

制約

全ての入出力ケースについて以下を満たす。

  • $1 \leq |S| \leq 7.4 \times 10^5$
    なお、この問題において、$|S|$ は文字列 $S$ の長さを表します。
  • 文字列 $S$ はASCIIコードの $41$ 番目から $126$ 番目までの文字で構成される。
    また、この文字は全て表示可能文字であり、スペース、改行、その他制御文字は含まれない。

入出力例

入力例1

a=Number(input());

出力例1

Yes

正しい括弧構造を持っています。

入力例2

a=Number(input();

出力例2

No

閉じ括弧 ) が足りていません。

入力例3

a=Number{input(});

出力例3

No

閉じ括弧の順番に誤りがあります。

入力例4

a=Number)input()(;

出力例4

No

括弧を使用するときは必ず、開き括弧から書く必要があります。

入力例5

return;

出力例5

Yes

そもそも括弧がないですが、「括弧に関するルール」には一切反していないので正しいと判断できます。