複数の種類のブラケットが存在する場合、すべてが少し複雑になります。そのバランス変数として機能するスタックを作成します。括弧は重複できないため、これが必要です。行を歩いていて開き括弧に遭遇すると、それをスタックにプッシュします。右中括弧に遭遇すると、そのタイプの左中括弧をスタックからポップしようとします。異なるタイプの中括弧がスタック上にある場合、シーケンスは無効になります。スタックが最後に空でない場合、シーケンスも無効になります。
1000 ms 256 Mb Rules for program design and list of errors in automatic problem checking