编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

6
查找最近距离的总和
对于此任务,您的代码应采用整数X和Y的两个排序数组作为输入。它应该计算X中每个整数与其Y中最接近的数字之间的绝对距离之和。 例子: X = (1 5,9) Y = (3,4,7) 距离是2 +1 + 2。 X = (1,2,3) Y = (0,8) 距离是1 + 2 + 3。 您的代码可以采用任何方便的方式进行输入。 主要限制是您的代码必须在两个数组的总和中以线性时间运行。。(您可以假设将两个整数相加需要固定的时间。)

3
将文本转换为按键
我是机器人。我购买此键盘的原因是其矩形布局简单: ~` !1 @2 #3 $4 %5 ^6 &7 *8 (9 )0 _- += tab Qq Ww Ee Rr Tt Yy Uu Ii Oo Pp {[ }] \| Aa Ss Dd Ff Gg Hh Jj Kk Ll :; "' [-enter-] Zz Xx Cc Vv Bb Nn Mm <, >. ?/ …

5
通函有限公司
挑战 让我们想象一个N介于0到0之间的整数元组M,并将其称为F。 总共(M + 1) ** N可能有F。 有多少个这样的Fs满足以下所有不等式(索引基于一)? F[n] + F[n+1] <= M 对于 1 <= n < N F[N] + F[1] <= M 编写一个使用两个正整数 N并M以任何方便的形式输出答案的程序或函数。 测试用例 (N,M) => Answer (1,1) => 1 (2,1) => 3 (3,1) => 4 (4,1) => 7 (1,2) => 2 (2,2) => 6 (3,2) => …

1
跳棋跳棋
这项挑战的目标是确定此举是否是合法的英国跳棋棋子。 这项挑战将使用8x8电路板。移动的棋子应被视为只能对角移动的人(不是国王)。板上将有0个或更多的黑色块和1个或更多的白色块。一块白色的东西目前正在移动。如果直接在其后面的正方形为空,则白色块可以“跳跃”到其前面的一个黑色块上。如果在它的对角线前面的任何一个方向都有另一个黑色块,则可能会从该位置再跳一次。捕获是强制性的,因此不进行可用的跳转是非法的。但是,并不一定要采用最大化跳跃次数的路径。基本上,这意味着,如果您进行了跳跃,并且从终点位置跳出了另一个可能的跳跃,则该移动是非法的。件位使用以下编号方案: 规则 输入: 代表黑块的数字列表。 代表白色的数字列表。 白棋的起始位置 白片的结束位置 输出: 如果移动有效,则为真实值,否则为假值 您可以假设一块白色将始终占据起始位置。 如果方便,您可以假定白名单中的第一个白名单将包含起始位置,而不是接受输入3。 标准代码高尔夫规则。最少的字节数获胜。 测试用例 例如,O是开始位置,X是结束位置,B是黑色块,W是白色块 Black pieces: [] White pieces: [5] Move: (5, 1) Output: True Single move no jump X _ _ _ O _ _ _ B: [6] W: [9] M: (9, 2) O: True Single jump _ …

26
接受三个整数并返回整数和字母列表的函数
挑战 我们需要三个正整数a,b以及c作为输入。使用这些整数,首先[0, c]以的步长在范围内(包括两端)创建一个序列b。例如,对于a=4, b=2, c=100,序列将为[0,2,4,...,96,98,100]。 对于此序列中可被整除的每个数字a,将其替换为小写字母中的下一个字母,从字母“ a”开始,到“ z”后回绕到“ a”。 例: 输入:a=4, b=2, c=100 输出:a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z 挑战规则: 你可以假设a,b以及c只为正整数,其中b ≤ a ≤ c。 您可以假设a是的倍数b。 您可以假定c被整除b。 首选输出是如上所述的单个串联字符串,但是列表/数组也是可以接受的。 测试用例: Input: a=4, b=2, c=100 Output: a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z Input: a=9, b=3, c=174 Output: a36b1215c2124d3033e3942f4851g5760h6669i7578j8487k9396l102105m111114n120123o129132p138141q147150r156159s165168t174 Input: a=10, b=2, c=50 Output: a2468b12141618c22242628d32343638e42444648f Input: a=25, b=1, c=25 Output: a123456789101112131415161718192021222324b Input: a=6, …

5
撰写两个Brainfuck程序
给定2个Brainfuck代码片段A和B,输出一些与输入s结果时C运行行为相同的Brainfuck代码。请注意,它必须适用于与以下假设相匹配的任何输入,就像给定了一样。BACA 您可以假设: 有限的输入。 A和B都停止了。 EOF始终为0或始终为-1。 始终允许或不允许细胞离开 磁带无界(否则可能无法达到要求) 始终为8位换行或无界整数 没有流(A或B的输入或输出)包含表示EOF的字节 代码A和B可以包含可能出现在C中的字符,并且 +-[]<>,. 例如(EOF = 0) A = ,[..,] B = ,[...,] C = ,[......,] A = >,[>,]<[.<] B = ,[...,] C = >>>>,[[-<+<+<+>>>]>>>,]<<<<[.<] A = >,[>,]<[.<] B = ,[...,] C = >,[>,]<[...<] A = ,. B = ,. C = ,>,[,]<. …

4
您不会相信的十大要素
又名:从阵列生成Clickbait。 给定一个整数数组,请根据其排列和长度生成一些值得赞扬的clickbait: 如果不超过20个元素,则可以列出“ Top X列表”。参数:数组的长度。 素数是名人,因此每当两个人相邻时,它就会成为八卦。参数:两个相邻素数在数组中出现的顺序。 如果任何数字在数组中出现两次或多次,那么这令人震惊且令人难以置信,每个人都需要听听它。如果多个数字出现两次,则为每个数字制作一个新闻故事。每个唯一编号仅打印一次。参数:出现次数以外观总数表示。 如果你看到3+元素排序 单调递增的顺序,然后突然下降,然后告诉他们如何排序,并了解后续挑逗。每直只做一次。参数:直线的长度。 这些是您应使用的各个Clickbaits: The Top {{N}} Array Elements {{N1}} And {{N2}} Were Spotted Together, You Won't Believe What They Did These {{N}} Elements Will Blow Your Mind {{N}} Elements Sort Themselves, Find Out What Comes Next 请记住,您代表一家廉价媒体公司,因此您需要挤奶并打印所有可能的标题。如果有两个相同的标题,请同时打印两个标题。 例如,如果您得到此数组… 1,2,3,4,2,1,1,5,6 您应该以任意顺序输出所有这些: The Top 9 …

2
孤岛
输入: 包含两个不同(可选)值的2D数组。在解释规则时,我将使用0和1。输入格式当然是灵活的。 挑战: 零是水,一个是小岛。为了确保孤独,您的任务是通过插入零行和零列将所有岛屿用水包围。您不想浪费水,因此您必须减少添加的水量。如果有不止一种溶液需要添加相同量的水,则应添加水栏,而不是行。我将在测试案例中展示这一点。 输出: 新的修改后的2D数组。输出格式当然是灵活的。 测试用例: 输入和输出以短划线分隔。添加的零以粗体显示。如果要将测试用例转换为更方便的格式,请在此处使用答案之一。 1 --- 1 1 1 --- 1 0 1 1 1 1 1 --- 1 0 1 0 0 0 1 0 1 1 0 0 1 --- 1 0 0 0 0 1 请注意,我们添加了一列零,而不是一列零。这是因为必要的零的数目相等,因此应首选列。 1 0 0 0 1 0 1 …

22
列表本身的n次的笛卡尔积
当给定一个值列表和一个正整数时n,您的代码应输出该列表的笛卡尔乘积及其n时间。 例如,使用伪代码,您的函数可能类似于: for x1 in list: for x2 in list: for x3 in list: ... for xn in list: print x1, x2, x3, ... , xn 例: repeated_cart([1,2,3], 3) 1 1 1 1 1 2 1 1 3 1 2 1 1 2 2 1 2 3 1 3 1 …

30
字母位置查找器
受到Codewars Kata的启发。 您的目标是采用这样的输入字符串: "'Twas a dark and stormy night..." 并返回一个字符串,其中包含字母中每个字符的位置,以空格分隔并忽略非字母字符,如下所示: "20 23 1 19 1 4 1 18 11 1 14 4 19 20 15 18 13 25 14 9 7 8 20" 对于其他挑战,您可以用+ 27替换原始字符串中的任何数字字符。例如,"25"将变为"29, 32"。这是完全可选的。 您必须使用1索引('a'==1,'b'==2,等) 附加规则: 您必须返回字符串,而不是数组。 尾随空格可以。 获胜者的字节数最少。 祝好运!


2
使用numpy,scipy或pylab打高尔夫球的技巧
还有已经为Python技巧的完整列表在这里,所以我要问的是专门适用于使用技巧numpy,scipy或pylab库。 这些既可以是已经使用缩短代码的方法,也可以是numpy通过使用这些库缩短常用python操作的方法。 请给每个答案一个提示。
10 code-golf  tips  python 

6
自验证三角棋盘程序
棋盘程序是一个程序,其中每个字符的序数值从偶数到奇数交替,不包括行终止符(可以是任何标准行尾)。 三角程序是这样的程序,其中每行比前一行具有一个附加字符,而第一行具有一个字符。您不需要处理空输入。 您的任务是构建一个程序,以验证给定的输入符合那些条件,并在程序符合条件时输出/返回真值,否则返回虚假值。 您的程序还必须满足这些条件。 有效程序的示例 G `e @u^ 5r{B ^ cB +$C VA01 规则 只要字符的奇偶性交替,您的程序就可以以奇数或偶数字节开头。 您的程序必须验证以奇数或偶数字符开头的程序。 对于Unicode字符,基础字节值必须具有交替的奇偶校验。 您可以假定输入仅包含可打印字符。如果您的程序包含不可打印的内容,则它仍然应该能够进行自我验证。 您的程序可能包含一个尾随换行符,验证不需要这样做,因为您可以假定在验证之前已将其删除。 禁止出现标准漏洞。 每种语言中以字节为单位的最短代码获胜。

7
在那里,我将其固定(用绳子固定)
相关:横向比较相似(但容易得多)的挑战:在那里(用胶带固定) 挑战: 给定仅包含大写和/或小写字母(以您喜欢的为准)和换行符的字符串,请rope垂直放置以对其进行修复。为此,我们检查字母表中两个相邻字母的差异(忽略环绕并且仅向下移动),并在需要的地方填充ROPE/ rope。 注意:此挑战与“ 我已解决(使用磁带)”挑战之间的另一个主要区别是,这次我们没有浪费rope我们的时间tape(在挑战的第一部分中,@ JonathanAllan建议)。 例: 输入: abc bcd ddd eex gfz hka imh 输出: abc bcd Rdd deE efR OPO gEP hRE iOR kO PP mE R O P E R O P E R O x P z a E R O P E R h …

4
平方根的数字和的连续分数
介绍 您的任务是在2的平方根和3的平方根的按位和的连续分数表示中生成前1000个项。 换句话说,准确产生以下列表(但输出格式灵活) [2, 6, 1, 5, 7, 2, 4, 4, 1, 11, 68, 17, 1, 19, 5, 6, 1, 5, 3, 2, 1, 2, 3, 21, 1, 2, 1, 2, 2, 9, 8, 1, 1, 1, 1, 6, 2, 1, 4, 1, 1, 2, 3, 7, 1, 4, 1, …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.