防御は、窓から誰かまたは何かを投げる行為です。
— ウィキペディア
入力
入力は2つの部分で構成されます。
フロアプランと家/建物内の人。
v><^は、矢印が示す方向を指している人を表します。入力には1人が含まれます。-そして|壁を表し、#ウィンドウを表します。空のスペースです。
入力のこの部分は、単一の文字列または配列/リスト/などとして取得できます。行の。末尾または先頭のスペースはありません。入力は常に長方形になります。
例:
-----###--- | | | ^ | -----------人が移動する距離(文字数)を示す1以上の整数。
出力
出力は
1人がウィンドウの「内側」にいる場合(つまり、入力で指定された距離だけ前方に移動した後、人はの上にいます#)。2人が衰弱している場合(a#と連絡を取り、さらに先に進みます)。3人が壁にぶつかった場合(-またはに接触すると|、壁にぶつかると、人は停止し、壁を通り抜けません)。0上記のいずれにも当てはまらない場合(そして、人が行ったことはすべて空の空間を旅することです)。
仮定
次のすべてが真であると仮定できます。
その人は、入力領域の「範囲外」に移動することはありません。
defenestratedされた後、人は他に接触することはありません
#か-/|(あなたがあれば心配する必要はありませんので2及び1または3両方真です)。
テストケース
次の「フロアプラン」の場合:
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
このフロアプランの場合:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
このフロアプランの場合:
||####|#|#|##|<
In Out
any 3
最終テストケース:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
7
この課題のタイトルを防御テストに
—
猫
追加の質問:これは、ピットの場合を除きます。
—
コナーオブライエン
CᴏɴᴏʀO'Bʀɪᴇɴ@
—
猫の
Has someone been for-sparta'd?
編集が拒否された理由):
—
cat
@cat他の人の質問に対する編集であるため、彼らは入力が必要です。
—
コナーオブライエン