Questions tagged «code-golf»

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

13
使用线条图字符绘制数独板
这是代码高尔夫。对于这个挑战,我将接受一个方法(您不需要完整的程序),但是方法签名确实计入字节数,并且我想查看完整的签名(不是lamdba)。该方法的输入是具有81个元素的整数数组。该方法的输出/返回值是一个字符串,该字符串将数组表示为ASCII数独板。 如果您使用的是深奥的语言或某种绝对没有方法的语言,则可以进行调整,但是如果该语言完全支持此功能,我希望看到实际上可以将某种东西插入“真正的”非高尔夫程序中,即使方法身体本身​​就是一种痛苦。该要求不是要阻止Jelly或05AB1E之类的语言,而是要使Java之类的语言更容易构建对该平台有意义的内容。 对于输入,整数值1-9应该具有明显的含义。应始终将0解释为空白单元格。您也可以将1-9范围以外的任何内容解释为空白单元格,但这不是必需的。从数组到拼图的位置从左上角开始,并从左到右填充每一行,然后再移动到下一行。 对于盒子,我希望在外部和每个3x3区域之间使用双线,在其他单元格之间使用单线。这些字符应使用线描字符绘制(如果您的I / O格式将字符串表示为字节序列而不是字符序列,则应以众所周知的编码(例如UTF-8或代码页347)表示它们。 对于这个挑战,我不是要您生成数独难题。这是功能的输入。我不是要你解决难题。我只是想让您产生一个字符串来“绘制”您所得到的(尽可能少的字节)。 输入示例: 数组的值: { 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, …

6
更有效的美国州代码
缩写为美国州!虽然很有趣,但是我们了解到在当前系统中很难有效地缩写美国州名。让我们提出一种替代性的状态代码方案,以提高高尔夫效率。 你的任务: 编写一个函数(或程序),给定一个有效的美国州名(仅需要50个正常状态),并以大写形式返回唯一的两个字母的代码来标识它。该代码必须满足以下要求: 首字母必须与州的首字母相同。 第二个字母必须是状态的其他字母之一(不能为空格)。 它必须始终为相同的输入提供相同的输出,并且绝对不能为两个不同的有效输入提供相同的输出。 例如,给定“阿拉巴马州”,您的函数可以返回“ AL”,“ AA”,“ AB”或“ AM”-只要它不为阿拉斯加,阿肯色州等中的任何一个返回该值。之所以只能使用“”,是因为状态名称中多次出现“ A”。) 禁止使用标准漏洞。标准输入/输出还可以。这是代码高尔夫,所以最短的解决方案(以字节为单位)获胜。 可能的输入的完整列表在这里: Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York …
20 code-golf  string 

22
简化矩阵输入!
我已经写了一些与矩阵有关的挑战,所有的共同点是在示例和测试用例中,我在表示矩阵时都使用了以下格式: 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 在许多语言中,这可能是繁琐的格式。 挑战: 编写一个程序/函数,该程序/函数可以采用顶部给出的形式的矩阵作为输入(直接从本文中复制/粘贴),并在下面显示的所有其他三种常规格式上输出相同的矩阵。 输入格式: 用不同数量的空格分隔的数字和代表行的换行符(请参见测试用例)。 数字之间的空格数不能保证是一致的。但是,您可以假设每列的最后一位数字对齐(如果有帮助的话)。 整数和浮点数都可以,它们可以是正数,负数或零。矩阵不会同时包含整数和浮点数。 您可以假设数字不超过10个字符,包括负浮点数的负号和小数点。 您可以假设每行和每列中的条目数相同。 不会有任何空的输入矩阵,但是可以有单个数字,或者只有一行或一列的矩阵。 在这些情况下,您可以在测试用例中显示的输出格式之间进行选择 如果程序/函数是直接从此帖子中复制并粘贴到解释器中的,则必须处理该输入(STDIN或作为函数参数或等效参数)。您可能在矩阵的前面和/或后面都有自己喜欢的东西(方括号,引号,括号),但是您必须将矩阵视为不能更改的字符序列(包括换行符)。 澄清一下:假设您的函数/程序被调用f,矩阵为: 1 -2 3 5 6 7 那么您可以像这样将矩阵作为函数参数(以及无限多个其他选项): f(1 -2 3 5 6 7) f([1 -2 3 5 6 7]) f("""1 …

18
会重复吗?
如果一个字符串包含两个相等的连续子字符串,则重复该字符串。 例如,连续2034384538452重复3845两次,因为它包含两次。 因此,您面临的挑战是确定字符串是否包含重复的子字符串。您可以将输入作为字符串或字符数组。 您将永远不会收到空的输入,并且子字符串的长度(如果存在)可能为1或更大。 我使用1和0这里作为我的真实和虚假价值观,但您可以使用其他值,只要它们在您的语言中是真实和虚假的即可。 例子: abcab -> 0 bdefdefg -> 1 Hello, World! -> 1 pp.pp/pp -> 1 q -> 0 21020121012021020120210121020121012021012102012021020121012021020120210121020120210201210120210121020121012021020120210121020121012021012102012021020121012021012102012101202102012021012102012021020121012021020120210121020121012021012102012021020121012021020120210121020120210201210120210121020121012021020120210121020120210201210120210201202101210201210120210121020120210201210120210121020121012021020120210121020121012021012102012021020121012021020120210121020120210201210120210121020121012021020120 -> 0 (最后一个示例是从Thue-Morse序列中每个零之间的一的数量产生的)

9
乱码!
给定一个字符串作为输入,输出该字符串的一个或多个变体,使得: 没有字符在其原始位置 没有与该字符原本相邻的字符相邻的字符 您可以假设,对于给定的字符串,这将始终是可能的,并且仅包含单写字母字符([a-z]或者[A-Z]您愿意) 请注意,相同字符的重复项不被视为唯一。 例如,给定输入programming,输出不能m在第7个或第8个字符处包含a,并且不能g在第4个或第11个字符处包含a (索引为1) 例: 拿弦 abcdef 以下是有效的输出: daecfb 但是,以下内容将无效:fdbcae在本示例中c,b它们仍然相邻。 邻接还包装,这意味着你不能做fdbeca的f和a仍在相邻。 测试用例: 请注意,这些不是给定输入的唯一有效输出 撰写为input -> output: helowi -> ioewhl mayube -> euabmy stephens -> nhseespt aabcdeffghij -> dbfhjfigaeca 得分: 这是代码高尔夫球,因此每种语言中最少的字节会获胜!

7
它是一个循环数吗?
循环数是“ n”个数字,乘以1、2、3,... n会得到相同的数字,但顺序不同。 例如,数字142,857是循环数,因为142,857 x 2 = 285,714、142,857 x 3 = 428,571、142,857 x 4 = 571,428,依此类推。给定整数输入,如果输出真值,则输出真值,如果输出真值,则输出假值,从而确定其是否为循环数。 另外,要清楚一点,输入中可以包含前导0:例如0344827586206896551724137931 这是因为,如果数字上不允许前导零,则142857是十进制中唯一的循环数字。 因为它是代码高尔夫球,所以最短答案以字节为单位!

19
画一个大的ASCII X
问题 受先前挑战做类似事情的启发 给定正整数输入,n输出将遵循以下模式: 输入n=1: * * * * * 输入n=2: ** ** **** ** **** ** ** 输入n=3: *** *** *** *** ***** *** ***** *** *** *** *** 等等... 它具有以下属性: n*2+1 行高 n除了合并时,“手臂”很宽 中心线很n宽 如果n中心上方和下方的线是否n*2宽 如果n是奇数,则中心上方和下方的n*2-1线宽 规则 尾随换行符被接受 适用标准漏洞 最短字节获胜 输出可以打印出来或一个字符串或字符串数​​组 编辑 n=0 不需要处理 允许尾随空格

18
查找无关号码
给定2个非负整数作为输入,输出一个不能通过2个输入上的任何数学运算符创建的非负整数。 例如,给定的输入2和3,6, 0, 5, 1, 9, 8, 23, 2都是无效的输出。 必须考虑的操作有: Addition (a + b) Subtraction (a - b) and (b - a) Multiplication (a * b) Division (a / b) and (b / a) Modulus (a % b) and (b % a) Exponentiation (a ** b) and (b ** a) …

11
斐波那契数列的线性插值
您的任务是找到第n 个斐波那契数,但n不一定是整数。 索引为0的斐波那契数列如下: 0, 1, 2, 3, 4, 5, 6, 7, ... 1, 1, 2, 3, 5, 8, 13, 21, ... 但是,如果我们想要第2 .4 个数字怎么办? 2.4 个数量是0.4倍3之间的差RD和2 次斐波那契数加上2 次斐波那契数。因此,2.4 个斐波那契数是2 + 0.4 * (3 – 2) = 2.4。 同样,第6.35 个斐波那契数为13 + 0.35 * (21 – 13) = 15.8。 您的任务是找到第n 个斐波那契数,以使n大于或等于0。 您可以执行零索引或一索引,只需说出您正在使用的索引。 …

6
画月相
挑战 给定月亮的相位,请使用ASCII艺术画图。 您的程序必须处理新月,给新月打蜡,第一季度,给凸出的月球打蜡,满月,下降的凸出的月牙,最后一个季度和消散的月牙。您的输入将是一个整数。 0 -> new moon 1 -> waxing crescent 2 -> first quarter 3 -> waxing gibbous 4 -> full moon 5 -> waning gibbous 6 -> last quarter 7 -> waning crescent ASCII图片全部放在16x8网格上(因为字符尺寸比例)。您可以.用任何字符和#任何其他非空白字符替换。 新月的输出应为: ................ ................ ................ ................ ................ ................ ................ ................ 对于新月打蜡: ..........###### ............#### .............### .............### …

7
六角形三角形!
您的任务:制作一个边长为的六边形三角形n,其中n正整数或0。 首先,让我定义一个六边形: / \ | | \ / (惊人的ASCII艺术,对吗?) 六边形可以通过共享边链接在一起: / \ / \ | | | \ / \ / / \ | | / \ / | | \ / 六角形三角形如下: / \ | | / \ / \ | | | \ / \ / 该六边形三角形的边长为2--制作一侧需要六边形。边长为1的六边形三角形仅是一个六边形,边长为0的六边形为空。 更正式地说,六边形三角形是由六边形连接在一起的三角形。顶部六角形在底部两个侧面链接到其下方的两个。左下角的三角形链接到其右侧和右上角的三角形,右下角的三角形链接到其左侧和左上角的三角形。边角之间有六边形,它们的相对侧相连,数量为n-2。三角形未填充。 …

16
解密异或加密
您的任务是将加密的字符串作为输入,并输出解密的字符串,以显示其隐藏消息。 输入和输出字符串都将包含以下64个ASCII字符列表中的字符(请注意前导空格): !"#$%&'()*+,-./0123456789:;=?@[\]^_abcdefghijklmnopqrstuvwxyz|~ 这些字符按上面列出的顺序分配了编号: ! " # $ % & ... 0 1 2 3 4 5 6 ... 因此,空格是数字0,!数字1和~数字63。这些数字可以用6位二进制代码表示: : 0: 000000 !: 1: 000001 ": 2: 000010 #: 3: 000011 .. ... ...... z: 61: 111101 |: 62: 111110 ~: 63: 111111 加密非常简单: 我将使用eC加密字符和C原始字符串的字符。C(n)是原始字符串的eC(n)第n个字符,而是加密字符串的第n个字符。 您将使用字符的6位二进制表示形式。第一个字符为eC(0) = not(C(0))。从那里开始,所有字符均为eC(n) = …

20
包含数字的单词
数字单词是一个单词,在其中可能删除了一些字母之后,剩下的数字只有一个:一个,两个,三个,四个,五个,六个,七个,八个或九个(不是零)。 例如,BOUNCE和ANNOUNCE是数字字,因为它们包含数字1。 即使ENCODE包含O,N和E,但它们也不是数字字,因为它们的顺序不正确。 编写一个程序/函数,该程序/函数将单个(大写或小写–您选择)的单词作为输入或参数,并确定它是否为数字单词。使代码尽可能短。 如果该单词不是数字单词,则应返回“ NO”,0或任何“假”值(这可能会因您的语言而异)。如果单词是数字单词,则应将其包含的数字输出为数字。 您可以假设单词的位数不超过一个,因此您不会有ONFIVE之类的东西。 测试用例 BOUNCE 1 ENCODE NO EIGHT 8 BLACKJACK NO FABULOUS NO EXERCISE NO DRIFTWOOD 2 SERVICEMAN 7 INSIGNIFICANCE 9 THROWDOWN 2 ZERO NO OZNERO 1 这个挑战来自BIO 2009的问题1(只是对它的微小修改)。大多数测试用例均来自评分方案。
20 code-golf  string 

1
良好的振动
Theremin的声音在The Beach Boys歌曲中永垂不朽 Good Vibrations”中。许多人还将其声音与原始《星际迷航》系列的主题相关联,尽管显然这是女高音的模仿。 这个挑战要求您实施Theremin。 输入值 从鼠标或其他输入设备(例如,可以使用操纵杆)进行二维输入,这将从音频输出设备产生音调,如下所示: 增加x将增加音调的频率。请注意,频率随着音符呈指数增加,因此必须在鼠标x位置和音符之间实现线性关系,并且 增加y将增加音调的音量。 真实的人体产生的波形似乎有些混乱,因此,为简单起见,必须使用正弦波(或其近似)。 规则 产生的音调必须至少具有2个八度音阶范围。更大的范围是可以接受的。A-440必须在范围内。 为了创建连续可变的频率和幅度的可听外观,从输入设备的两个维度考虑的值范围必须至少为500。实现可以打开一个窗口(至少500x500像素)以从鼠标光标位置读取输入。或者不打开窗口,就可以直接从鼠标或其他输入设备读取坐标。 必须有一种简单的方法来停止程序-组合键,鼠标单击或其他常用输入设备。CTRL-c就足够了。 可以使用任何标准库,只要它们无需其他工作即可完全实现解决方案即可。 Code Golf和I / O的标准规则 您可能会因为鼠标或输入设备失去对输入框的关注而停止。 笔记 由于输出音是动态生成的,因此必须注意确保音是连续波形。即不会因相位或振幅的突然变化而引起咔嗒声或爆裂声。 您可以将输入大小区域限制为500 x 500,但可能更大。 这是代码高尔夫球,因此任何语言中的最短答案都可以胜出。 特别感谢 特别感谢Digital Trauma提出的挑战并将其发布在Secret Santa's Sandbox中。我做了一些编辑,这是原始帖子。
20 code-golf  music 

30
交织反转
给定一个字符串,交错插入即可。这是针对abcdefghi和和abcdefghij0索引的方法: 将偶数索引的字符与奇数索引的字符分开:acegi bdfh acegi bdfhj 以奇数索引反转字符:acegi hfdb acegi jhfdb 再次交织成一个字符串:ahcfedgbi ajchefgdib 规则 您必须同时支持偶数长度和奇数长度的字符串。 从0索引角度来看,您必须以奇数索引而不是偶数反转字符。 当然,以1索引为单位,您必须以偶数索引而不是奇数反转字符。 输入将包含可打印的ASCII(代码点32-126),没有换行符。 您可以将输入作为字符串或字符列表(非1个字符的字符串)。例如String/ char[]或char*允许,但String[]/ char[][]或char**不允许。 测试用例 Input Output Hello, World! HdlroW ,olle! Hello World! H!llooW rlde ABCDEFGHIJKLMNOPQRSTUVWXYZ AZCXEVGTIRKPMNOLQJSHUFWDYB !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ }"{$y&w(u*s,q.o0m2k4i6g8e:c<a>_@]B[DYFWHUJSLQNOPMRKTIVGXEZC\A^?`=b;d9f7h5j3l1n/p-r+t)v'x%z#|!~ P P AB AB xyz xyz 对于空字符串,返回空字符串本身。
20 code-golf  string 

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.