这是系列中的第二部分,第三部分是两条道路在黄色的树林中分叉(第3部分)
这是基于两条道路在黄色木材中分叉(第1部分),这是我的先前挑战。这是相当受欢迎的,但也很琐碎(一个Java回答52字节!)所以我做了一些更复杂的事情……
灵感来源
这一挑战的灵感来自罗伯特·弗罗斯特(Robert Frost)的著名诗作《未走的路》:
两条道路在黄色的树林中分叉,
对不起,我无法同时行进
,成为一个行人,我站了很久,尽我所能地
低头看
向灌木丛中的弯曲处。... 2段落已删去...
我将叹息地告诉这个问题,它的
年代久远了:
两条路在树林中分叉,我-
我走过的路少了,
这一切都改变了。
请注意倒数第二行I took the one less traveled by,
。您的目标是在字符串输入中找到行驶最少的道路。您必须输出彼此不同的2个值之一,以信号表明您应该转向哪种方式以减少行驶的道路。一旦路岔(六边形的轨迹变为数字),您就在交叉路口。从那里开始,将有2条由数字组成的路径。位数最低的路径将是未走的路。请注意,未走的道路的路径可能较大,但路径总和较低。下面是一些程序的示例/测试用例,这些程序针对未采用的路径打印“左”或“右”:
1 2
1 2
1 2
#
#
#
left (3 < 6)
1 2
2 2
1 1
#
#
#
left (4 < 5)
12 2
11 2
1 1
#
#
#
right (6 > 5)
99 989
99 89
99 99
99 99
#
#
#
#
left (72 < 79)
1111 1110
001 111
11 11
11 11
#
##
##
##
left (9 < 10) (Note: 1111 is interpreted as 1+1+1+1=4, not 1111=1111)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
假设和记住的事情
- 总会有2条路径。不多不少。
- 您可以一次从STDIN中输入一行,也可以是包含LF字符的字符串,也可以是包含文字反斜杠和n的字符串。如果您需要任何其他方式的输入,请在评论中寻求批准。
- 您不必担心无效的输入或绑定的路径。这些将永远不会输入到您的程序/功能中。
- 输入的宽度或高度可以是任何长度,小于您的语言的字符串限制。
- 永远不会有
#
在同一行中和。 - 路径中的所有数字均为0到9的正整数。
- 允许输入或输出带有结尾的换行符。
- 查看我的JS ES6答案下面的作为示例。
- 2条路径之间始终至少有1个间隔。
- 每条地图的2条路径始终具有相同的高度,但在其他地图上可能有所不同。
- 如果您对特定的测试案例感到困惑,请告诉我。
- 1111被解释为1 + 1 + 1 + 1 = 4,而不是1111 = 1111。该映射是一系列的一位数字,而不是任意长度的数字。
- 这是代码高尔夫球,因此最短答案以字节为单位!
- 禁止标准漏洞
如果您对此挑战有任何疑问,请在评论中问我,祝您好运!
let answers = $('div > h1').map(function(){return $(this).clone().children(':not(a)').remove().end().text().replace(/\s+/g,' ').trim()}).get();answers.splice(0, 1);answers.join('\n');
$("div > h1").map(function(){return $(this).text()}).get().join("\n");
到控制台中!