比赛挑战:
我有一个二维数组N x N
。有必要编写一个函数来绕过带有右边缘的蛇的二维数组。图片中的一个例子。
二维数组的示例:
输入具有以下数组:
input = [[4, 3, 2, 1], [5, 6, 7, 8], [12, 11, 10, 9], [13, 14, 15, 16]]
遍历后的输出是一维数组:
output = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
可以使用任何语言。
主要条件:该函数必须对任何等边二维数组都能正常工作。
指定响应头中的语言名称和函数的缩小版本的字符数,用逗号分隔。
获胜者将是用更少字符写出来的人。为此,他获得300声望。获胜者将在 2 周内(1 月 12 日)确定。
选择获胜者时不考虑作者的回答。祝你好运 :)
排行榜:
execute("ru.stackoverflow.com", 926927);
<script src="https://mayorovp.github.io/codegolf/table-8c505e68f1349e4c69e7.js"></script>
获奖者:
非常感谢大家的参与和有趣的解决方案;)
哈斯克尔 39
40 42https://ideone.com/JYttmr
蟒蛇 56
感谢@AndreyNOP 的提示!
蟒蛇 60
https://ideone.com/JPyzUQ(此 lambda 版本由 @Let's say Pie 友情提供)
尝试 2:由于格式错误而无效 - 解决方案应作为函数实现
蟒蛇 49
https://ideone.com/WdHq4n
PS @KirillMalyshev 建议如何将代码再缩短 6 个字符-谢谢!!
尝试1:
蟒蛇 55
https://ideone.com/2hoF3P
蟒蛇 43
https://ideone.com/fQVgtD
八度 47
在线尝试!
如果您允许返回的不是行向量,而是列向量,则它会减少 1 个字符:
八度 46
在线尝试!
没有匿名函数的上一个版本:
八度音阶 40
在线尝试!
JavaScript, 38
此代码在 Firefox 中有效,但在 V8 中无效(由于特定的排序算法)。如果这是不可接受的,请说 =)
JavaScript, 40
蟒蛇
6261_到目前为止,我还没有想出比递归选项更好的东西:)
https://ideone.com/i2d0f6
JavaScript, 54
F#,68
https://ideone.com/S6PhEZ
PowerShell 51
在线尝试!
PHP
9391_https://ideone.com/XsiPap