开脱是将某人或某物扔出窗户的行为。
— 维基百科
输入项
输入将包括两部分:
平面图和房屋/建筑物内的人。
v><^
代表一个人,指向箭头所指的方向。输入将仅包含一个人。-
和|
表示墙壁,并#
表示一个窗口。
输入的这一部分可以视为单个字符串,也可以作为数组/列表/等。行。永远不会有任何尾随或前导空格,并且输入将始终是一个矩形。
例:
-----###--- | | | ^ | -----------
≥1的整数表示该人行进的距离(以字符为单位)。
输出量
输出应为
1
如果该人最终进入窗口“内部”(即,向前移动输入中指定的距离后,该人位于顶部#
)。2
如果此人被剥夺了资格(与a联系,#
然后继续进行下去)。3
如果此人撞到了墙壁(碰到-
或|
。一旦撞到墙壁,该人将停止并且不会继续穿过墙壁)。0
如果上述条件都不成立(并且该人所做的全部是在空白处旅行)。
假设条件
可以假定以下所有条件都是正确的:
此人将永远不会“超出范围”输入区域。
被贬低后,该人将永远不会与另一个人
#
或-
/ 接触|
(因此您不必担心2
and和1
or3
都为真)。
测试用例
对于以下“平面图”:
-----
| |
|###|
| |
| ^ |
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
我建议将此挑战的标题更改为Defenestration测试。
—
2015年
后续问题:这个,除了坑坑洼洼的。
—
科纳·奥布莱恩
@CᴏɴᴏʀO'Bʀɪᴇɴ
—
猫
Has someone been for-sparta'd?
为什么我的编辑被拒绝了):
—
猫
@cat因为它是对其他人的问题的编辑,所以他们必须输入信息。
—
Conor O'Brien 2015年