広告スペース(バナー)
💎Ruby レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 63 / 68
括弧の対応をチェックしよう(スタックの応用)
このレッスンでは、スタックを応用して括弧の対応をチェックするアルゴリズムを学び、データ構造の実践的な使い方を理解することを目標にします。「Ruby 括弧 対応チェック」で調べている方向けです。
スタック(後入れ先出し)を使うと、(や[のような開き括弧を積んでおき、閉じ括弧が来るたびに一番上と対応しているか確認する、という方法で括弧の対応チェックができます。
サンプルコードでは、stackという配列をスタックとして使い、str.each_charで文字列を1文字ずつ処理しながら、開き括弧のときはpush、閉じ括弧のときはpopで取り出した値が正しいペアかどうかをpairsというハッシュで確認しています。
初心者がよくつまずくのが、対応する括弧の種類が違う場合(閉じ括弧の種類が合わない場合)の判定です。単に開き括弧と閉じ括弧の数が一致しているだけでは不十分で、それぞれの種類が正しいペアになっているかまで確認する必要がある点が、このアルゴリズムのポイントです。
エディタの入力補完やコードのシンタックスチェックの裏側でも、似た考え方が使われています。HTMLタグの開閉タグが正しく対応しているかをチェックする、似た仕組みのツールもたくさん存在します。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではRubyを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
コード中のカッコの対応が取れているかをチェックする、簡単なツールが作れるようになります。
コード中のカッコの対応が取れているかをチェックする、簡単なツールが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)