第3章 プログラムの構造と制御構造¶
条件分岐とループの基本を確認してから、例外、コンテキストマネージャ、assert を使う問題に進みます。
問題一覧¶
- 0300: 最初の重複値:列を左から調べ、2回目に現れた値を返します。
- 0301: 正の整数だけを取り出す:文字列の列を調べ、正の整数として読める値だけを集めます。
- 0302: STOP までの合計:行を順に処理し、空行を読み飛ばしながら STOP が現れるまで整数を合計します。
- 0350: 例外による探索の打ち切り:Nクイーン問題の深さ優先探索を、ユーザ定義例外の送出で打ち切って最初の解を返します。
- 0351: 例外の連鎖を保つ再帰下降パーサ:四則演算と括弧からなる式を評価する再帰下降パーサを実装し、内部の例外を ParseError に連鎖させます。
- 0352: トランザクションを実現するコンテキストマネージャ:辞書への一連の変更を、例外発生時にまとめて巻き戻すコンテキストマネージャを実装します。
- 0353: NFA のシミュレーション:ε遷移なしの非決定性有限オートマトンを状態集合の遷移でシミュレートし、文字列の受理を判定します。
- 0354: 不変条件を assert する二分探索:ループ不変条件を assert 文で表明しながら、二分探索 bisect_left を実装します。