スクリプトの引数は、インデント文字cとレベルnあたりの文字数、それに続くファイルのリストです(ファイルが指定されていない場合は標準入力が使用されます)。その後、スクリプトは1行ずつ読み取り、各行から行の先頭の白い文字を削除し、k * n文字cで置き換えます。ここで、kは角かっこ入れ子レベルです。一般括弧()、中括弧{}、および角括弧[]を考慮してください。たとえば、入力ファイル
a ( b
c d [ e ] f [
g h { j (
k ) } l m
n ] o ) p
q r
would be modified as follows if the script is run with parameters c='.' and n=1:
a ( b
.c d [ e ] f [
..g h { j (
....k ) } l m
..n ] o ) p
q r
(入力によく一致する括弧があるとします。スペースまたはタブは文字cで許可する必要があります)
ベストアンサー1
「スクリプト方法」:問題をコードに簡単に変換できる小さな手順に分割します。
- 一度に1行ずつファイルを読み込む
- 左/右括弧の数を計算し、それに応じて累計を更新します。
- これは、一度に1文字ずつ行を処理したり、別の方法で実行したりできます。
c
「合計実行回数」の長さの文字列を生成します。- 文字列と行を印刷します。
- エッジケースとエラー条件を考慮してください。あなたの質問についての仮定を考えると、これは追加のクレジットになりそうです。
- 累計がマイナスになるとどうなりますか?
- ファイルの終わりの累積合計が0より大きい場合はどうなりますか?