某所で「左右がバランスした括弧の列を生成する」という問題があり、解答が
void parenthesis(int l, int r, string& s, vector<string>& ans) {
if (l + r == 0) {
ans.push_back(s); return;
}
if (r < l) return;
if (l > 0) {
s.push_back('(');
parenthesis(l - 1, r, s, ans);
s.pop_back();
}
if (r > 0) {
s.push_back(')');
parenthesis(l, r - 1, s, ans);
s.pop_back();
}
}
(呼出の例) vector<string> ans; string s; parenthesis(4, 4, s, ans);
この if (r < l) return; が左右のバランス(単に'('と')'の数が同じというだけでなく)の条件に
効いているようですが、ピンとこないのです... 確かに正しい括弧の列のとき、それが成り
立つのはわかりますが、逆にそれがバランス条件を満たすのに十分であるというのが
どなたかわかりやすい説明はないでしょうか
ニュース
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 [少考さん★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 【日中】経団連会長、1月の北京訪問に暗雲 中国は受け入れ是非明らかにせず 関係「政冷経冷」に [煮卵★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 女性のハイヒールが消滅の危機!「今いる職人がいなくなったら終わってしまう」老舗メーカー、歌姫の引退が痛手とも [牛丼★]
- 【高市朗報】鈴木大臣「嫌儲のデマに騙されないで。お米券の使い勝手は悪くない。卵味噌醤油も買えます。現金と変わりません」 [517459952]
- 政治家、気づく「ヤードとかいう単なる犯罪拠点、規制したほうがよくないか?」 [792147417]
- 🏡おい!返事しろ︎︎!知的障害者!
- 高市、メガソーラー廃止。環境破壊が社会問題化 [792147417]
- きょうはおさけのんでいいひだけど
- なぜ、ネトウヨは例外なく狂っているのか? [805596214]
