Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

9
键盘布局挑战
人们通常使用的键盘布局是QWERTY布局,如下所示。 但是,还有其他键盘布局: 德沃克 科勒马克 工人 你的任务 您的代码将接受两个输入:键盘布局的名称和要转录的字符串。您的目标是转换QWERTY输入,就像您使用给定的键盘布局作为第一个参数进行键入一样。 规则 输入格式是免费的,您可以使用字符串,数组等。此外,您可以使用任何三个不同的值来表示布局以减少字节数,但是它们每个都必须以10个字节或更少的字节表示。 您只需要处理带有白色背景的键。具体来说,您必须将可打印的ASCII字符从QWERTY字母转换为其他字母之一: QWERTY: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ DVORAK: !_#$%&-()*}w[vz0123456789SsW]VZ@AXJE>UIDCHTNMBRL"POYGK<QF:/\=^{`axje.uidchtnmbrl'poygk,qf;?|+~ COLEMAK: !"#$%&'()*+,-./0123456789Oo<=>?@ABCSFTDHUNEIMKY:QPRGLVWXJZ[\]^_`abcsftdhuneimky;qprglvwxjz{|}~ WORKMAN: !"#$%&'()*+,-./0123456789Ii<=>?@AVMHRTGYUNEOLKP:QWSBFCDXJZ[\]^_`avmhrtgyuneolkp;qwsbfcdxjz{|}~ (注意:这是@ETHproductions手动转录的,因此,如果您发现任何错误,请指出来!) 例 DVORAK zZxX 作为输入将作为输出 ;:qQ 这是代码高尔夫球,因此最短答案以字节为单位!

4
查找有限组的子组数
定义 如果您已经知道组,有限组和子组的定义,则可以跳过此部分。 团体 在抽象代数中,一个组是一个元组(G,∗),其中G是一个集合,而∗是一个函数G×G→G,使得下式成立: 封闭:对于所有的x,y在ģ,X * Y也是ģ(由事实暗示*是一个函数G×G ^→G )。 关联:对所有X,Y,Z在ģ,(X * Y)* Z = X *(Y * Z) 。 同一性:存在一个元素ê在ģ使得对于所有X中ģ,X * E = X = E * X。 逆:对于每个X在ģ,存在一个元素ý在ģ使得X * Y = E = Y * X,其中ê是在前面的项目符号点中提到的单位元。 有限群体 甲有限组是一组(G,*) ,其中G ^是有限的,即,具有有限多个元件。 亚组 组(G,∗)的子组 (H,∗)使得H是G的子集(不一定是适当的子集),而(H,∗)也是一个组(即满足上述4个条件)。 例子 考虑二面体组D 3 (G,∗),其中G = {1,A,B,C,D,E},并且∗在下面定义(这样的表称为Cayley表): …

5
生成所有Brain-Flak片段
这个问题是旨在庆祝Brain-Flak的第一个生日的几个Brain-flak Birthday挑战中的第二个!您可以在此处找到有关Brain-Flak诞辰的更多信息 挑战 对于这个挑战,您将从括号列表中生成所有完全匹配的字符串。借用DJMcMayhem对完全匹配的字符串的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套几层深。 [(){<><>[()]}<>()] <[{((()))}]> 当且仅当每对括号中的正确开/右括号正确且顺序正确时,才将字符串视为“完全匹配”。 输入值 您的程序或函数将采用任何方便且一致的格式列出四个非负数的列表。这包括(但不限于)整数列表,非数字定界字符串或单独的参数。这四个数字代表每种类型的括号的匹配对数。例如,[1,2,3,4]将代表: 1对 () 2对 {} 3对[]和 4对 <> 您可以选择每个输入对应的一对括号,只要它们是一致的即可。 输出量 您应该输出可以从此括号列表中形成的所有完全匹配的字符串,而不重复。输出可以采用任何合理的格式,包括将非括号分隔的字符串打印到STDOUT或将字符串列表作为函数的返回值。 您的算法必须适用于任何任意输入,但是您不必担心内存,时间或整数大小限制(例如,如果答案是C,则不会得到2 33作为输入)。 这是代码高尔夫球,因此最短的答案以字节为单位。 输入和输出示例 对于这些示例,我将使用与上面相同的输入顺序。 对于每个示例,第一行将被输入,随后几行将被输出 Example 0: [0,0,0,0] Example 1: [1,0,0,0] () Example 2: [0,2,0,0] {}{} {{}} Example 3: [0,0,1,1] []<> …

9
没有11的回文素
每个具有偶数位数的回文可以被11整除,因此11是唯一具有偶数位数的[回文素数]。- 大卫·沃瑟曼,OEIS 今天,在进行回文素数计算时,我的程序跳过了偶数位数(11除外)的数字,这是我在进行研究之前以手动方式学习的。您的任务:创建一个程序或函数,当给定整数输入N时,该程序或函数在Stephen's Palindromic Sequence™中输出第N个项。 斯蒂芬的回文序列™ Stephen的Palindromic Sequence™从11开始,再到回文的 半素数可被11整除。基本上,如果11不“计数”,则所有的半素数都是素数。有利的是,此列表包含具有偶数个数字的数字!好极了。并且,由于它们已经是质数,所以将跳过许多具有奇数个数字的数字。 序列的开始: 1 : 11 2 : 22 3 : 33 4 : 55 5 : 77 6 : 121 7 : 737 8 : 979 9 : 1111 10 : 1441 11 : 1661 12 : 1991 13 : 3113 14 …

4
像2048拼图一样更改文字重力
在游戏2048中,您有一个网格,并且可以在四个方向上移动元素。他们都朝着这个方向努力。对于此挑战,将为您提供带填充的方形2D字符串(带有换行符或字符串列表),如下所示: ab cd e f ghij kl mno p q r st u v w x y z 要么 ['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z '] 这四个操作是left,right,up,和down。以上输入中每个的结果: 剩下: abcde fghij …
14 code-golf  string 

12
正负多面体!
您的提交必须包含一个数字列表(以您的语言支持的任何列表格式,或使用多个功能/命令行参数),或一串数字,并用一个不是的字符分隔0123456789。用一种语言,它必须将所有语言相加并输出和。用另一种语言,它必须按顺序输出彼此相减的结果。例: 12 5 7 2 在一种语言中,它必须输出26,而在另一种语言中,它必须输出-2。请注意,所有输入的数字都是小于的正整数100。所20提供的数字将永远不会超过,因此您的输出将永远不会大于2000或小于-1899。任何问题?在下面发表评论!

11
A,Buzz,C,D,E,Fizz,G
一个使用字符串的简单FizzBu​​zz。 给定 1个字或词组(字符串) 2个独特的角色 输出量 每个出现的第一个字符的单词或短语都用嘶嘶声代替,而第二个字符的每个单词或短语都以嗡嗡声代替 规则 Fizz和Buzz中的首字母必须保持大写 对于其余的嘶嘶声和嗡嗡声,您必须匹配被替换字符的大小写(如果没有大小写,则保持小写) 如果短语中没有给定的字符,则输出原始短语 测试用例 Given: Hello, h, l Output: FIZZeBuzzBuzzo Given: test, a, b Output: test Given: PCG rocks!, , ! PCGFizzrocksBuzz Given: This Is SPARTA!, , S Output: ThiBuzzFizzIBuzzFizzBUZZPARTA! Given: FizzBuzz, a, b Output: FizzBUZZuzz 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 注意 从技术上讲,处理换行案例(这是SPARTA!)是挑战的一部分。但是,我不会因为没有包含答案而作废,因为在某些语言中这是非常具有挑战性甚至是不可能的。
14 code-golf  string 

1
帮我给鳄梨榨汁
在这个挑战中,我有一个鳄梨领域,我想尽可能快速,完整地榨汁。您可以编写一个程序或函数来帮助我确定如何使所有鳄梨完美地榨汁吗? 作为输入,您将得到鳄梨作为mx m正方形网格,其中m是3到6之间的整数。每个正方形恰好包含一个鳄梨。鳄梨有多汁的阶段: 阶段1:鳄梨根本没有榨汁。 阶段2:鳄梨已部分榨汁。 阶段3:鳄梨已完全榨汁。 阶段4:鳄梨因榨汁过多而爆炸。 当您使用榨汁工具时,该榨汁工具作用范围内的鳄梨将移至下一个阶段。爆炸的鳄梨有很大的力量,会破坏整个鳄梨场,因此请确保没有鳄梨爆炸! 这是鳄梨网格的示例。在这些示例中,我使用了0,0左下角的坐标和右上角的坐标2,2,尽管您可以调整坐标系以适合您的语言。 112 221 231 目的是使所有鳄梨完全榨汁(即阶段3)。为此,您拥有三种不同的榨汁工具。每种榨汁工具都有不同的作用范围,但是它们都会使受影响的鳄梨的多汁程度提高1。 这是您可以使用的所有工具。通过指定工具的第一个字母,然后指定要榨汁的坐标来使用榨汁机。例如,要在正方形上使用切片器5,2,您将输出S 5,2。 切片器:将目标坐标和鳄梨放在两边。 112 112 112 221 --> XXX --> 332 231 231 231 刨丝器:将目标坐标和鳄梨汁上下榨汁。 112 1X2 122 221 --> 2X1 --> 231 --> kaboom! 231 2X1 241 火箭发射器:为目标坐标和所有相邻的鳄梨榨汁。 112 1X2 122 221 --> XXX --> 332 …
14 code-golf 

9
列表和数组,各部分
在此挑战中,您将获得四个不同但有些相关的任务,必须以特定的方式解决它们。首先,我将解释任务,然后解释如何解决它。 您的代码在所有四个任务中都应使用两个正整数作为输入:n,m,其中n<m。所有任务必须以相同的语言解决。矩阵的方向是可选的(n×m可以解释为“ n行,m列”或“ n列,m行”)。 任务1: 创建(并输出/打印)由以下元素组成的矢量/列表:n, n+1 ... m-1, m。因此,对于n=4, m=9,您应该输出:4,5,6,7,8,9。 任务2: 创建(并输出/打印)矩阵/数组/列表列表(或等效列表),如下所示: n, n+1, ... m-1, m n+1, n+2, ... m-1, m+1 ... n+m, n+m+1, ... 2*m-1, 2*m 对于n=4, m=9您应该输出: 4, 5, 6, 7, 8, 9 5, 6, 7, 8, 9, 10 ... 13, 14, 15, 16, 17, 18 …

1
将图片变成拼图
摘要 这项挑战的目标是创建一个15拼图 / 滑动拼图(在法语中也称为taquin)的未还原图像版本。 细节: 给定一个输入,该输入包括: 一个图像, 的整数n, 的其它整数r, 您的程序,函数或任何其他适合的东西,都必须输出与输入相同的图像(即,相同的大小和格式),但是必须经过以下过程: 将图像分成n²矩形, 随机删除其中一个矩形, 从受点(2.)影响的线/列中移动任意数量的连续矩形,以便填充创建的孔,并在该线/列中生成另一个。0如果毛坯在角落或边缘,则此数字可以是。 重复(3.)r次。 说明: 如果您在第(3.)步中从行中移动了矩形,则必须在下一个重复中从列中移动矩形, 如果您在一行中从左到右移动矩形,则必须在下一行中将它们从右到左移动,这与列的上下到上下以及从下到上相同, 您可能会假设n会选择该选项,因此它将划分图片两边的长度。 最后一点: 动画.gif演示整个过程非常受欢迎。 我建议使用下面的图片(是1024x768),将n=16和r=100用作模型,您可以使用任何其他图片(只要它是相关的并且符合SE的规则)。 请注意,适用标准漏洞政策。 这是代码高尔夫球,因此较短的提交将获胜! 由于请求了一个示例,因此这里有一个“手工制作”的示例,其中包含n=4和r=1 步骤1和2 步骤3:逐行,向左2个矩形

2
在海滩上度过的一天
受此挑战启发 目标: 目的是绘制撞击到海滩上的海浪。 输入: 您将获得3个整数(任意格式)作为输入。 第一个整数将是图形的长度,第二个整数将是沙洲的索引,波浪开始波峰(距海滩至少3个间隔) ,第三个整数将是波浪之间的间隔(至少3个,可以大于绘图长度,在这种情况下,您只能绘制一个波形) 输出: 输出将是一个字符框,显示海浪撞击海滩。当第一波浪完全冲入海滩时,图纸应结束。 首先,该波显示为膨胀(_-_)。 当波浪通过沙洲时,它开始波峰(/c_)。 最终,海浪冲入海滩(/c.=> _-_=> ___=> __.)。 例子: 输入:14 4 6 输出: -___________.. _-__________.. __-_________.. ___-________.. ___/c_______.. ____/c______.. -____/c_____.. _-____/c____.. __-____/c___.. ___-____/c__.. ___/c____/c_.. ____/c____/c.. -____/c____-_. _-____/c_____. __-____/c___.. 输入:10、2、11 输出: -_______.. _-______.. _/c_____.. __/c____.. ___/c___.. ____/c__.. _____/c_.. ______/c.. _______-_. _________. ________.. 输入:6 0 …

4
解决数学问题符号
想象一下,我有无数个作业问题(!),每个问题都有一个整数。 数学问题符号是一种使用问题说明符描述问题子集的符号。 MPN表达式可以包含以下几项: 单个值。这表示一个包含数字的集合:99 -> {99}。 一个简单的范围。这表示包含从范围的开始到结束的所有数字的集合10~13 -> {10, 11, 12, 13}。如果左侧或右侧丢失,那么他们被认为是负无穷大或无穷大分别为:~10 -> {x|x ≤ 10}; ~ -> ℤ。 一个MPN表达式,后跟“跳过”和另一个MPN表达式。这代表了两组的区别:10~20 skip 12~14 -> {10, 11, 15, 16, 17, 18, 19, 20}。 两个MPN表达式,以逗号分隔。这表示两个集合的并集:1,8~9,15~17 -> {1,8,9,15,16,17}。 “跳过”运算符的绑定比逗号运算符更紧密,因此16,110~112 skip 16 -> {16,110,111,112}(16个不包括在集合中{110,111,112}中不包括16,因此排除16无关紧要。) 您也可以将表达式放在括号中以消除歧义: 1~9 skip (2~8 skip (3~7 skip (4~6 skip 5))) -> …

23
两条道路分叉成黄色的树林(第1部分)
这是系列中的第一个,第二个是在黄色的树林中分叉的两条道路(第2部分) 这一挑战的灵感来自罗伯特·弗罗斯特(Robert Frost)的著名诗作《未走的路》: 两条道路在黄色的树林中分开, 对不起,我无法同时行进 ,成为一个行人,我站了很久 ,俯视着一条路,尽我所能 ,一直到灌木丛弯曲的地方。 然后公平地取下另一个, 也许有更好的主张, 因为它长满了草,想要穿。 虽然那路过的 人真的穿了差不多的衣服, 那天早上,两个人同样躺在 地上,没有脚踩过黑色。 哦,我保留了第一天! 然而, 我知道路要走,我是否应该回来。 我将叹息地告诉这个问题,因为它 在某个年代和年代都有: 两条道路在树林中分叉,我- 我走过的路少了, 这一切都改变了。 请注意倒数第二行I took the one less traveled by,。 您的实际挑战 您将采用以下形式输入: # ## # ## # ## # # # 而你必须找到更薄的道路。 这条路从底部开始#。其他两条始终在最上一行终止的道路是您必须检查的道路。最厚的道路是最常经过的道路,因此这不是您想要的。另一个是经过最少的旅行,也是您想要的旅行。 输出量 您的程序/函数必须输出2个不同的值之一(例如0或1,true或false),其中一个用于未经过的道路的每个可能位置。例如,如果未行驶的道路位于已行驶道路的左侧,则可以输出0,否则输出1,或者可以输出字符串“ left”或“ right”,true,false等。 测试用例: ## # …

1
混淆整数表示法
编辑:我将meta-golf很快发布此问题的较新版本。保持警惕! 编辑2:我将不再更新挑战,但将其保持打开状态。该meta-golf版本位于此处:https : //codegolf.stackexchange.com/questions/106509/obfuscated-number-golf 背景: 大多数数字只能用6个不同的符号书写: e (欧拉常数) - (减,非负) ^ (求幂) ( ) ln (自然对数) 例如,您可以i使用以下等式转换虚数: (e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e))))) 目标: k通过任何合理的方式给定任何整数,仅使用这6个符号输出该数字的最短表示。 例子: 0 => "e-e" 1 => "ln(e)" 2 => "ln(ee)" // Since - cannot be used for negation, this is not a valid solution: // ln(e)-(-ln(e)) -1 => "e-e-ln(e)" 笔记: …

2
找到循环的内部
任务 给定循环的ASCII图 例如 .................... ......@@@@@......... ......@...@......... .....@@...@@@@@..... ....@@........@..... ....@........@@..... ....@@@@@@@@@@...... .................... .................... 和循环上的位置 例如 (7,1) 您必须找到循环的内部和外部 例如 00000000000000000000 00000011111000000000 00000011111000000000 00000111111111100000 00001111111111100000 00001111111111100000 00001111111111000000 00000000000000000000 00000000000000000000 技术指标 您可以将图表的输入作为由换行符或明显等效的字符串分隔 作为输入的一部分,您将在循环上收到一个坐标(0或1索引)。您可以将自己的血统放在任何您想要的地方。您可以借此协调(<row>, <column>),(<column>, <row>)或弦上的线性位置。您可以通过任何合理的方式接收这些数据。循环上的所有字符将与该索引处的字符相同。 优选的输出是truthy和falsy值的2维阵列,但是串1和0通过换行或后两种的任何明显的等效接受分离。内部和外部必须具有不同的真相值,但这与哪个无关紧要。 循环被定义为一组字符,以使它们全部是相同的字符(例如@),从而循环中的每个字符都具有到原始字符(输入坐标处的字符)的路径,该路径仅通过相同的字符字符(出租车几何图形没有对角线)。 内部是所有循环本身,以及不跨越循环就无法到达图边缘的位置。 外面无处不在 这是代码高尔夫球 测试用例 粘贴框

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.