好吧,事实证明,Doorknob 在GitHub,Reddit和其他站点上的用户名是 KeyboardFire。那给了我一个主意...
任务
您在KeyboardFire Inc.(一家生产特殊键盘的公司)工作。而且,“特殊”的意思是每当您按下一个键时,房屋中的某些东西就会着火!在新的KeyboardFire门把手系列中,着火的物体是门把手。
但是,由于政府的愚蠢规定,您的用户需要知道房屋中的哪些门把手会着火。
考虑一下QWERTY键盘一部分的ASCII艺术:
1|2|3|4|5|6|7|8|9|0
q|w|e|r|t|y|u|i|o|p
a|s|d|f|g|h|j|k|l
z|x|c|v|b|n|m
(|
的代表键之间的边界。)
我们可以将此精确的ASCII绘图视为某种“图形”,其中范围内的每个字符[a-z0-9]
都有一个x(水平)和y(垂直)索引,其中(0,0)
为1
。例如,字母d
具有坐标(2,6)
(坐标计算中包括管道和空格)。
现在让我们考虑每个用户的房屋。可以按20x4 ASCII字体从上到下的角度绘制每所房子的图(在这个合法的销毁键盘销售的世界中,每座房子的大小都是一样的)。我们可以使用D
来标记房屋中每个门把手的位置。这是一个例子:
D D D D
D
D D
我们将其称为“房屋地图”。(是的,这是很多门把手!)
按任意键将点燃最近的门把手。例如,如果我们采用字母的先前坐标d
,则最近的门把手(按曼哈顿距离)位于该坐标处(1,4)
。这d
是敲击字母时将着火的门把手。如果我们用标记火红的门把手F
,结果将是:
D D D D
F
D D
规格
您的程序将接受两个输入:
- 与模式匹配的字符串
[a-z0-9]+
。 - 房屋地图。这可以是一个字符串,字符串列表或等效的字符串。
您需要遍历字符串的每个字母并着火点燃相应的门把手(将其字母更改为F
)。如果最近的门把手已经着火,请保持原状。如果使用此方法着火的门把手多于1个,则可以点亮任意一个。
以这种方式处理了整个字符串之后,您需要打印生成的房屋地图。
代码高尔夫球,所以最短的程序将获胜。照常禁止标准漏洞。
例
串:
helloworld123
房屋图:
D D D D
D
D D
可能的结果:
F F F D
F
D F
要么:
F D F D
F
D F
要么:
F F D D
F
F F
要么:
F D D D
F
F F
编辑:呃...即使有+50赏金,我也有一个答案吗?如果您觉得路线复杂/模糊,如果您在评论中张贴内容或其他内容,或者如果我做错了什么,我会很高兴...
编辑2:赏金会在一天之内过期!发布其他内容!请!请!!!!:(
d
的坐标(2,6)而不是(2,2)?2)为什么这个例子有这么多可能的答案?3)当您解释事物将如何着火时,您为什么还要谈论d
?为什么不直接说紧迫a
会点燃一些房屋着火呢?是否d
做到这一点,太?