编程拼图和代码高尔夫

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

26
子数组中的数字相等
给定一个带有length >=3和的数字数组length % 3 == 0 [1, 2, 3, 4, ...] 您将其拆分为长度为3的子数组 [[1, 2, 3], [4, 5, ...], [... 并返回一个数组 [0] =>子数组中所有数字均相等的个案数 [1] =>如果子数组中的所有数字都不相等,则子数组中只有两个数字相等的情况数 示例和测试用例: 输入:[2, 4, 2, 5, 5, 5, 4, 2, 1, 3, 3, 1]输出[1, 2] 这是因为 [[2, 4, 2], [5, 5, 5], [4, 2, 1], [3, 3, …

12
找到斐波那契模式
您可能熟悉斐波那契数列,其中前两个项是0, 1(或有时是1, 1),其后的每个项都是前两个项的总和。它是这样开始的: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 有时,序列包含具有特殊图案的数字,我发现这很有趣:相邻数字对之间的差异与其他任何对相同。例如,在以开头的序列中0, 1,第18个项是987。9-8=1和8-7=1。我很满意。 挑战 给定两个初始值F(0)和F(1),输出由生成的序列F(n) = F(n-1) + F(n-2)中满足以下条件的每个数字: 任何一对相邻数字之间的差异与任何其他一对相同 至少三位数字长(此模式对1位和2位数字不感兴趣) 输入值 小于10 ** 10(100亿)的两个非负整数 输出量 所有小于10 ** 10且符合“挑战”部分中的条件的整数 输出大于10 ** 10的数字是可以接受的,但这不是必需的 假设重复的数字符合模式(例如777),则可能有无数个符合条件的数字,但您的程序不需要永远输出 如果不存在这样的整数,则输出任何您想要的东西,只要它不是数字即可(无,空,空数组,错误消息,悲伤的面孔等)。 如果与模式匹配的数字在序列中出现多次,则可以将其输出一次或多次 如果任何输入符合条件,则应将其包含在输出中 规则 输入和输出可以是任何标准格式 禁止出现标准漏洞 这是代码高尔夫球,因此以字节为单位的最短代码获胜 示例/测试用例 Input , Output [1,10] …

8
Code 39条码编码器
编写一个将字符串编码为Code 39格式条形码的函数或程序,其中每个字符被编码为由四个空格分隔的五个小节。两个条中的一个和一个间隙较宽,而另一个间隙较窄(10 * 4码),或者三个间隙较宽,而一个间隙都不是(4码)。这给出了44个不同的代码,其中一个是保留代码,用于表示编码字符串的开始和结束。 挑战 输入是仅包含集合中字符的字符串 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. +/$% 输出是编码为条形码字符串的字符串。窄间隙和字符间间隙是单个空间,而宽间隙是三个空间。窄条是Unicode字符“ Full block”(█)的UTF-8字节序列,即0xE2 0x96 0x88宽条是三个这样的字节序列/字符(███)。代码的完整列表是: Spaces 0100 0010 0001 1000 1011 1101 1110 0111 Bars 00000 + / $ % 10001 1 A K U 01001 2 B L V 11000 3 C M W 00101 4 D N X 10100 5 …
16 code-golf 

9
中级字符串数组反射
让我们从在二维字符数组中重新定义字符的反射开始: 给定一个方形的二维数组,其中的字符带有不同的小写字母字母,则定义一个字母在矩阵中的反射,即将其与通过正方形中心直接从其对面的字符交换。 因此,c在 abcde fghij klmno pqrst uvwxy 会导致配置 abwde fghij klmno pqrst uvcxy 因为c和w已被切换。 其他一些示例(具有与上述相同的原始配置): 反映人物e会形成 abcdu fghij klmno pqrst evwxy 反映角色m将使 abcde fghij klmno pqrst uvwxy 反映人物b会形成 axcde fghij klmno pqrst uvwby 挑战 给定二维数组的字符,这些字符具有不同的小写字母,请遍历给定字符串中的每个字符,然后将其“反射”到矩阵中。 说明:字符串中a-z的字母是from ,字母是唯一的,并且数组至少为1x1,最大为5x5(显然,英文字母中只有26个字符。)字符串中的字符必须保证为在二维数组中 该字符串最长为100个字符。 输入值 一个字符串s,一个整数N,然后是一个NxN字符数组。 例 输入: ac 2 ab cd 输出: dc ba …
16 code-golf  string 

16
世界末日的21种发型
世界末日的21种发型 给定一个介于1到21(或0到20)之间的数字列表,将输出以下面的“缝合在一起”图(请参见缝合信息规则): ___ ,,, ooo === +++ ### -*~*- (o o) (o o) (o o) (o o) (o o) (o o) (o o) ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- *** ||| _/7 ))) ((( xxx @__ (o o) (o o) (o o) (o o) (o o) (o o) (o o) ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- ((_ >X< '*` ^^^ …

10
分配客机座位
受到上周APL课程的启发。 给定一个大写的2D座位图和一维客户列表,返回座位图和客户列表,但进行如下修改(以指示已占用的座位和就座的客户): 对于输入的乘客列表中的每个唯一字母,将其在座位图中的所有字母(或全部,如果没有足够的话)都小写,从左到右,从上到下。 对于座位图中的每个唯一字母,将乘客列表中该字母中的许多(或全部,如果没有足够的话)小写,从左到右。 输入座位图只包含空格和大写字母集合{ F,B,P,E},并且可以是: 通过换行符分成几行 字符串列表 大写字母矩阵 任何其他可比较的格式 输入客户名单只包含从一组大写字母{ F,B,P,E },可以是: 一个字符串 字符列表 任何其他可比较的格式 返回的座位图必须与输入的座位图相同,不同之处在于将零个或多个字母折叠成小写 返回的客户列表必须与输入的客户列表相同,除了将零个或多个字母折叠成小写字母外 允许前导和尾随空格 示例(美联航飞机的简化版) ERJ145 座位图输入: P E E PP E EE E EE E EE E EE P PP E EE E EE E EE 旅客名单输入: FFEEEEEEEEEEEEEEEE 座位图输出: P e e PP e …

12
猜词次数
任务 给定2个正整数n和k,其中n > k输出从一组可n区分元素到一组可k区分元素的排斥数。 定义 如果对于每个t∈T都有s∈S使得f(s)= t,则函数f:S→T被称为素射。 例 当n=3和时k=2,输出为6,因为存在6从{1,2,3}到的排斥{1,2}: 1↦1, 2↦1, 3↦2 1↦1, 2↦2, 3↦1 1↦1, 2↦2, 3↦2 1↦2, 2↦1, 3↦1 1↦2, 2↦1, 3↦2 1↦2, 2↦2, 3↦1 测试用例 n k output 5 3 150 8 4 40824 9 8 1451520 参考 OEIS A019538 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。 有标准漏洞。

1
排列,使得没有k + 2点落在任何次数为k的多项式上
描述 如果没有点集(以及它们的索引)落在次数的多项式上,则将整数的置换{1, 2, ..., n}称为最小可插值。那是,k+2k 没有两点落在一条水平线上(0度多项式) 线上没有三个点(一阶多项式) 抛物线(2次多项式)上没有四个点 等等。 挑战 编写一个程序,计算OEIS序列A301802(n),它的最小可插值置换的{1, 2, ..., n}数量应n尽可能大。 计分 我将在输入增加的情况下在计算机(2.3 GHz Intel Core i5,8 GB RAM)上计时您的代码。您的分数将是最大的输入,只需不到1分钟即可输出正确的值。 例 例如,排列[1, 2, 4, 3]是最小可插值的,因为 the terms together with their indices [(1, 1), (2, 2), (3, 4), (4, 3)] have the property that (0) No two points have …

12
设置我的自动拨号器
过去,电话自动拨号器使用打孔卡,每列要拨打的号码中的每一列都有一栏。列有七行。前三行分别代表数字(1,2,3),(4,5,6)和(7,8,9)。最后三行将这种排列旋转90°:(1,4,7),(2,5,8)和(3,6,9)。中间的行用于0。任何数字1-9都会打两个孔-前三个行一个,下三个行一个。零将只打中间行。让我们可视化数字6的打孔列(.未x打孔,已打孔,左侧的指南仅用于说明编码): 123 . 456 x 789 . 0 . 147 . 258 . 369 x 我们寻找哪些行包含我们要拨打的号码。对于6,这是第二行,第九行。这两行被打孔,其余五行未打孔。这是所有0-9数字的打孔模式: 0 1 2 3 4 5 6 7 8 9 123 . x x x . . . . . . 456 . . . . x x x . . . 789 . …

2
找出这是否是Stack Cats风格的有效Stack Cats程序!
背景 Stack Cats是Martin Ender提出的一种可逆的深奥语言。Stack Cats中的每个命令都是其自身的反函数(表示为对称字符,如-_:T|),或者具有其反命令(表示为镜像,如() {} [] <>)。Stack Cats对语法的要求很高,那就是整个程序应该是其自身的镜像。请注意,这意味着任何有效的Stack Cats程序都是自然的镜像歧义。 这是Stack Cats的整个命令集: 自对称: !*+-:=ITX^_| 对称对: () {} [] <> \/ 其他字符无效;字符不在上述字符集中的任何输入应输出false。 语言有附加约束()和{}对必须始终平衡,但是为了简单起见,你不必检查此条件。 以下是有效的Stack Cats程序的一些示例(同样,请注意,您不会检查平衡括号): {[+]==[+]} [)>^<(] ({T)}|{(T}) <(*]{[:!-_:>}<[<)*(>]>{<:_-!:]}[*)> 这些不是: b<+>d ())( ({[<++<]}) 挑战 编写确定给定字符串是否有效的Stack Cats程序的程序或函数。您的代码也应该是自然的镜像歧义,这意味着: 您的代码应该是其自身的镜像。 您的代码可能具有一个或多个换行符,只要自然显示的整个代码是其自身的镜像即可。 您可以在每行上省略或添加尾随空格,因为它不会更改显示。 不允许使用制表符,因为它们在显示上有些歧义。 注意:您的代码不会不必须是一个有效的协议栈猫节目; 它可能包含Stack Cats不允许的某些额外字符。(请参阅下面的完整列表。) 例如,以下两个程序是对称的(因此是有效的提交),而第三个则不是: ({bTd}) [<q|p>] ({bTd}) IXI ({bTd}) IXI 关于“镜像对称性”,仅考虑Stack …

13
运行基因交叉算法
您的任务是接受两个基因序列和一个“交叉点”序列作为输入,并返回由所示交叉产生的基因序列。 我的意思是说您有序列[A, A, A, A, A, A, A]和[Z, Z, Z, Z, Z, Z, Z],并且交叉了2和的点5。结果序列为[A, A, Z, Z, Z, A, A],因为: 穿越这里:VV 指数:0 1 2 3 4 5 6 基因1:AAAAAAA 基因2:ZZZZZZZ 结果:AAZZZAA ^^ 请注意,尽管我在这里使用字母是为了清楚起见,但实际的挑战是将数字用于基因。 结果是第一个序列直到遇到交叉点,然后结果从第二个序列开始直到遇到另一个交叉点,然后结果从第一个序列开始直到遇到一个交叉点... 输入: 输入可以是任何合理的形式。这两个序列可以是一对,点是第二个参数,所有三个都可以是单独的参数,一个的三元组(genes 1, genes 2, cross-points),一个具有命名键的映射... 交叉点将始终是有序的,并且将始终是入站。不会有重复的点,但是交叉点列表可能为空。 基因序列将始终具有相同的长度,并且将为非空。 索引可以基于0或1。 基因将始终是0-255范围内的数字。 哪个参数是“ genes 1”或“ genes 2”都没有关系。在没有交叉点的情况下,结果可以完全是“基因1”或“基因2”。 输出量 …

19
用我的方式阅读颜色
即使所有系统都在RGBA空间中讲话,不同的系统也有不同的颜色描述方式。熟悉CSS的前端开发人员可能更喜欢#RRGGBBAA。但是Android开发人员可能更喜欢#AARRGGBB。处理AAS文件格式时,#AABBGGRR是必需的。太混乱了。也许我们需要一个可以在不同颜色格式之间转换的程序。 输入: 输入包含3个部分: 要转换的颜色(例如#1459AC0F),以尖锐符号#开头的字符串,后跟8个十六进制数字。 给定颜色的格式(例如#RRGGBBAA),一个字符串开头,#后跟8个字母,分为4个不同的组,每个组是RR/ GG/ BB/之一AA。 转换成的格式。 输出: 以转换后的格式输出颜色 测试用例: Color, OriginalFormat, TargetFormat -> Result #12345678, #RRGGBBAA, #AARRGGBB -> #78123456 #1A2B3C4D, #RRGGBBAA, #AABBGGRR -> #4D3C2B1A #DEADBEEF, #AARRGGBB, #GGBBAARR -> #BEEFDEAD 输入/输出不区分大小写。您可以以任何可接受的方式输入/输出。 规则: 这是代码高尔夫球,每种语言的最短(以字节为单位)代码获胜

15
及物平等
挑战 您的程序应接受3个输入: 一个正整数,它是变量的数量, 一组无序的非负整数对,其中每对代表变量之间的等式,并且 代表起始变量的正整数, 它应该返回一组表示所有变量的非负整数,这些变量可以证明与起始变量(包括起始变量本身)在传递上相等。 换句话说,给定的输入N,E和S返回一个set Q,使得: S ∈ Q。 如果Z ∈ Q和(Y = Z) ∈ E,那么Y ∈ Q。 如果Z ∈ Q和(Z = Y) ∈ E,那么Y ∈ Q。 这也可以表示为图论问题: 给定无向图和图中的顶点,请列出其连接组件中的顶点。 技术指标 您可以选择使用基于0或基于1的索引。 第一个输入计算存在的变量数,其中变量以数字形式给出。或者,您不能采用此输入,在这种情况下,根据您的索引编制方案,该输入等于当前存在的最大变量索引,或者等于此变量的最大变量索引。 您可以假设输入格式正确:不会给您超出第一个输入指定范围之外的变量。例如,3, [1 = 2, 2 = 0], 1是有效输入,而4, [1 = 719, 1 = 2, 3 = …

11
是否想看魔术牌戏法?
我小时候学到的第一个魔术纸牌技巧是: 有1张纸牌,背面的图案不是垂直对称的。 将所有卡组织成一个方向。 要求个人“拿起一张卡片,任何一张卡片,记住并退还给您”。 继续将其放入甲板(方向错误)。 大力洗牌,给人一种幻觉,即您不知道他们的牌在哪里。 出示他们的卡片使他们惊讶。 如今,这种技巧显然在本质上有些缺乏光泽,但是它却带来了巨大的挑战。编写一个程序,该程序在没有输入的情况下将输出随机洗牌的纸牌,其中一张纸牌是随机选择的,并且反转了。但是,如果输入的是一副纸牌,其中一张纸牌已反转,则必须输出反转的纸牌(以正确的顺序)。 卡片组 一副纸牌定义为: [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, 2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD, 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, 2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC] 卡的定义是其号码,然后是其西装的第一个字母。卡片的反面正好相反,其西装的第一个字母后跟一个数字。 抽奖卡 例如,如果我们随机选择反转的牌是4 of Clubs (4C),我们最终会(显然没有混洗): [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, 2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD, 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, 2C,3C,C4,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC] 洗牌 然后,在改组后: [2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D] 给定空输入,这是有效的输出。 甲板输入 但是,相反,当我们的程序收到上述输出作为输入时,它应该输出4C。也就是说,输入以下内容: [2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D] 您反复进行遍历,直到找到反转的卡,然后将其返回,然后反转回到正常状态。因此,在这里我们将找到C4,知道C不是数字,然后将其返回为4C,这是正确的。 规则 您不得从任何外部来源加载卡座。 空的输入应导致随机洗牌的甲板,其中有1张随机卡片被撤消。 一副纸牌中有1张纸牌作为输入反转的结果应该会导致纸牌反转。 任何其他输入都会导致爆炸性的骆驼在未来派的电子管中骑行。 或其他任何事情。 所选卡和洗牌顺序必须一致地随机。 IE浏览器所有卡都有被选择被撤销的同等机会。 IE浏览器的所有组合卡都有相同的出现机会。 您可以使用SHCD或shcd用于西装,但要保持一致: 如果选择大写西装(SHCD),则还必须使用TJQKA。 如果选择小写字母西服(shcd),则还必须使用tjqka。 这是代码高尔夫球,获胜者是最低字节。

24
没有匹配的连续对的ID生成器
给定2个输入(m = 最小起始id,n = id的数量),生成从> = m开始的id的顺序列表,该列表由数字0-9组成,其中没有2个连续的数字相同,例如1232是好吧,1233不是(彼此相邻包含2'3')。 例 对于m = 985,n = 6,下面显示了将生成/跳过的ID ... 985 - ok, 1st 986 - ok, 2nd 987 - ok, 3rd # skip 0988 (contains '88') 989 - ok, 4th # Skip 099x (contains '99') # Skip 100x (contains '00') 1010 - ok, 5th # …

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.