Questions tagged «code-golf»

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

11
区分大小写(非常)的字符串更有趣
受此挑战(或更具体地说,是通过误读)的启发,我提出了以下挑战: 给定输入字符串S,请颠倒所有大写字符和所有小写字符的顺序。保留所有非字母字符。例如: 请注意,大写字母W(第一个大写字母)被替换为H(最后一个)。小写字母也一样:“ d”(第一个)被e(最后一个)交换,l(第二个)被l(pen-ultimate)替换……所有非字母字符都保留在原位。 输入值 输入是仅包含32-126范围内的ASCII字符的字符串。 保证输入的字符长度至少为1个字符,并且不会超出您的语言限制。 输出量 相同的字符串,并按说明交换字符。 附加规则 禁止出现标准漏洞 答案必须是完整的程序或功能,而不是摘要或REPL条目。 代码高尔夫,最短答案(以字节为单位)获胜。 测试用例 A A Ok Ok OK KO Hello, World! Wdlro, Holle! 0123456789 0123456789 The quick brown Fox jumps over the lazy doge Feg odyza lehtr Tev ospmu jxon wor bkci uqeh odd ddo racecar racecar EtOn Em …
28 code-golf  string 

12
编写自我验证代码
编写将字符串作为输入并根据字符串是否遵循以下规则输出真值或伪值的代码: 如果将每个字符堆叠在一起,将其转换为二进制并对每一列求和,则所有和应相同。您可以假设输入字符串仅包含可打印的ASCII字符(代码点32-126)。 举个例子: 输入O5vy_+~应返回真实值,因为其二进制表示为: 1001111 | O 0110101 | 5 1110110 | v 1111001 | y 1011111 | _ 0101011 | + 1111110 | ~ ------- 5555555 <- Sum of bits in each column. Should give a truthy value. 输入PPCG应返回falsey值,因为其二进制表示为: 1010000 | P 1010000 | P 1000011 | C 1000111 …

24
组合两个数字之和,乘积和差的运算符
挑战: 在社交网络上流传着一个愚蠢的谜题,上面写着: 8 + 2 = 16106 5 + 4 = 2091 9 + 6 = ? 实现一个功能或操作给定两个正整数时,x和y这样x > y > 0,得到的正确答案为整数,如果回答的数字是数字x * y后跟数字的x + y后面的数字x - y。很简单的。 规则: 不允许出现标准漏洞。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 输入数据验证不是必需的。当输入无效时,该程序可能崩溃或返回垃圾。 您可以使用数字函数和运算符(包括整数和浮点数,数学库函数以及其他接受和返回数字的函数)。 如果适用,您可以使用返回数字位数的函数。 你不是允许使用字符串或任何类型的代码中的级联的任何地方。 结果可能会被返回或推入堆栈,无论哪种语言都适用。结果必须是整数,而不是字符串。 样例代码: Dyalog APL: 以下代码创建一个名为的二元运算符X。 X←{(⍺-⍵)+((⍺+⍵)×10 * 1 +⌊10⍟⍺-⍵)+⍺×⍵×10 *(2 +⌊10⍟⍺+⍵)+⌊10⍟⍺- ⍵} 说明: 在APL中,您从右到左求值。 ⍺ …

20
不在序列中的整数之和的序列
背景 考虑定义如下的序列: 第一个元素为0;第二个元素为0。 第二个元素是4; 从第三个元素开始,其值可以通过以下方式计算: 取从0到序列的前一个元素的整数集(包括或不包括); 从集合中删除序列中较早出现的所有整数; 将集合的其余元素加在一起;那就是您想要的价值。 有趣的是,此序列似乎尚未在OEIS上。 任务 编写一个程序或函数,将整数n作为输入,并输出序列的第n个元素。 测试用例 该序列的前几个元素是: 0 4 6(1 + 2 + 3) 11(1 + 2 + 3 + 5) 45(1 + 2 + 3 + 5 + 7 + 8 + 9 + 10) 969(1 + 2 + 3 + 5 + …

11
斐波那契负数
也许大家都知道斐波那契数列: fibonacci(n)=fibonacci(n-1)+fibonacci(n-2) fibonacci(0)=0 fibonacci(1)=1 您的任务非常简单: 给定整数N计算fibonacci(n) 但这是一个转折点: 也做负面的 N 等待。什么? fibonacci(1)=fibonacci(0)+fibonacci(-1) 所以 fibonacci(-1)=1 和 fibonacci(-2)=fibonacci(0)-fibonacci(1)=-1 等等... 这是一个代码高尔夫球,因此以字节为单位的最短编程赢了。 您可以提交功能或完整程序 N在[-100,100]中 CSV中的测试用例: -9;-8;-7;-6;-5;-4;-3;-2;-1;0;1;2;3;4;5;6;7;8 34;-21;13;-8;5;-3;2;-1;1;0;1;1;2;3;5;8;13;21 暗示: n <0且n&1 == 0: fibonacci(n)=fibonacci(abs(n))*-1

12
素数除数表
介绍 我在休闲数学中一直在玩的事情是构造除数表,以便直观地比较/对比一组数字的本数。输入数字的集合在顶部作为列标签,在主除数的左边作为行标签,并且标记指示两者的排列位置。 例如,对于输入6, 9, 14, 22,将构建类似于以下内容的表: 6 9 14 22 2 * * * 3 * * 7 * 11 * 这是因为6具有和的素数,具有2和的素数,依此类推。393 施工 该表的构造使得输入数字形成以空格隔开并按升序排列的列标签(您可以假定它们是预先排序的),并且素数除数以升序列在左侧,每行一行标签。 请注意,如果数字的长度不同,则质数和输入数字的前导空格可能是必需的,因此所有列的宽度均应相同,并适当对齐。 每个除数都由一个*(或您选择的其他合适的ASCII字符表示,只要所有出现都使用相同的字符)即可。 多个除数将被忽略(例如,3 x 3 = 9但是*那个交集只有一个)。 本*可以在栏中任一水平放置,只要它是明确的(我有我所有的用例*右对齐)。 输入值 正整数的名单在任何方便的格式,每个>1。 您可以假定输入已预先排序。 确保输入仅具有唯一值。 输出量 主除数表的结果ASCII艺术表现形式。 规则 前导或尾随的换行符或空格都是可选的,只要字符本身正确对齐即可。 如果用分隔线将表格标题/行标题与表格数据分隔开来要短一些,那也是允许的。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便人们可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 6,9,14,22 6 9 14 …

30
像ABC一样容易
输入值 包含每个字母的最多一个字符串A,B和C。它们可以按任何顺序排列。空字符串是有效输入。 注意:此挑战的先前版本使用字母LEJ代替,ABC如果需要,它们仍可以使用。 输出量 的字符串A,B,C字母不存在输入。它们可以按任何顺序排列。 如果输出为空字符串,则简单地不给出任何输出是有效的,如果这对您的实现有意义。(例如,您不需要实际调用print一个空字符串。) 例子 如果输入是B,则输出应该要么是CA或者AC因为A与C不存在于输入端。 如果输入为空字符串,则输出应为ABC或任何排列,因为输入中的三个字母均不存在。 如果输入为,CAB则输出应为空字符串,因为所有三个字母均出现在输入中。 测试用例 输入案例很少,我们可以列举所有这些案例: in -> out1 | out2 | out3 | ... ABC -> "" ACB -> "" BCA -> "" BAC -> "" CAB -> "" CBA -> "" AB -> C AC -> B BC -> A BA -> …

18
XOR两个单色图像
挑战: 接受两个黑白(单色)图像的输入,然后将第一个像素的每个像素与第二个像素的每个像素进行异或,将它们添加到新图像中并输出新图像。 一些说明: 图片大小无关紧要。扩展名/图像格式无关紧要。您可以使其输入任何扩展名,并输出任何扩展名,只要该扩展名用于存储数字图像即可。如果需要,您还可以使用图形在例如画框中绘制输出。否则,将输出另存为文件。输入可以作为图像或url的路径。 但是,您无法做的一件事就是I / O阵列。三胞胎(R,G,B)。 不要篡改alpha。不应进行异或处理,每个像素应为255(最大值)。 每个像素的异或是什么意思? 您不必这样做,但是对两个像素进行异或运算的一种方法是将其RGB值和R1与R2,G1与G2,B1与B2并获取结果,这就是您的新颜色 由于我们只有两种颜色,因此在这种情况下,显然,当颜色相同时,结果将为(0,0,0),而当颜色不同时(白色为255,255,255,黑色为0,0,0),结果将为是255,255,255。 因此,当两个像素不同时,结果为白色像素,否则为黑色像素 I / O示例: 输入1:输入2: 输出: 这是代码高尔夫球,因此最短的代码获胜。

9
检测由M和S字符组成的ASCII艺术窗口
窗口是一种ASCII艺术形式的正方形,其奇数边的长度至少为3,边缘带有单个字符边框,中间有垂直和水平笔触: ####### # # # # # # ####### # # # # # # ####### MS窗口是仅由字符M和组成边框的窗口S。您的任务是编写一个程序(或函数),该程序接受一个字符串,如果输入是有效的MS Window,则输出一个真实值,否则输入一个虚假值。 技术指标 您可以将输入作为换行符分隔的字符串或代表每一行的字符串数组。 MS窗口的边框可能包含M和S字符的混合,但内部始终由空格组成。 您可以选择仅检测带有尾随换行符的窗口,或者仅检测不带尾随换行符的窗口,但不能同时检测这两者。 测试用例 真相: MMM MMM MMM SMSMS M M S SMSMM S S M SMSMS MMMMMMM M S M M S M MSSSSSM M S M M S M …

2
固定图像
我喜欢希尔伯特曲线。 解决此挑战的任务是拍摄一张图像(严格来说是一个正方形图像,其所有侧面都是2像素的幂),然后以Z字形方式逐行展开,并以伪希尔伯特曲线将其拉回。 拆散 要解散,您将从左上角的像素开始向右移动,直到到达图像边缘。触及图像边缘后,您将向下移动到下一行并开始向左移动,直到再次触碰边缘。您将继续逐行展开方向,每次切换方向,以便获得一条连续曲线。这看起来像是玩耍的蛇游戏 拆散的结果应该是一个像素顺序,其中每个像素恰好包含一次 列队 订购像素后,您将按照伪希尔伯特曲线的路径在新的大小相同的画布上重新排列它们。对于2**n正方形图像,应使用伪希尔伯特曲线的第n次迭代。每个像素将恰好放置在新画布上的一个位置。您应该重新排列图像,以便原来在左上角(蛇形曲线的起点)的点将保留在那里,而在右下角(蛇形曲线的终点)的点将放置在右上角。 输入输出 您的程序或函数应通过标准方法获取指定约束的图像,并通过标准方法输出另一图像。 计分 这是具有最少字节胜利的代码高尔夫程序。 例子 输入值 输出量 输入值 输出量 输入值 输出量 我还建议对空白的白色或纯色图像进行测试,以确保您没有丢失任何像素。 随意将自己的结果包括在答案中!

14
列出n的所有乘法分区
给定的正数Ñ,输出的所有不同的乘法分区Ñ以任何方便的格式。 n的乘法分区是一组整数,都大于1,因此它们的乘积为n。例如,20具有以下不同的乘法分区: 2 * 2 * 5 2 * 10 4 * 5 20 顺序无关紧要,所以2 * 2 * 5与的分区相同2 * 5 * 2。 例子: 1 -> {} 2 -> {2} 4 -> {2, 2}, {4} 20 -> {2, 2, 5}, {2, 10}, {4, 5}, {20} 84 -> {2, 2, 3, …

11
Sidi多项式系数的绝对和
背景 次数为n的Sidi多项式或第(n + 1)个 Sidi多项式定义如下。 Sidi多项式具有几个有趣的性质,但是它们的系数也是如此。后者形成OEIS序列A075513。 任务 编写一个完整的程序或函数,给定一个非负整数n,该函数将打印或返回度为n的Sidi多项式的系数的绝对和,即 这些和形成OEIS序列A074932。 如果您更喜欢基于1的索引,则可以取正整数n代替,并计算第n 个 Sidi多项式的系数的绝对和。 因为这是code-golf,所以您必须使代码尽可能短。所有标准规则均适用。 测试用例(从0开始) n Σ 0 1 1 3 2 18 3 170 4 2200 5 36232 6 725200 7 17095248 8 463936896 9 14246942336 测试用例(基于1) n Σ 1 1 2 3 3 18 4 170 5 2200 6 …

20
给定长度的直链烯烃数量
直链烯烃定义为通过单键(烷烃),双键(烯烃)或三键(炔烃)连接的碳原子序列(使用隐式氢。)碳原子只能形成4个键,因此碳原子不得被强制具有四个以上的键。直链烯烃可以表示为其碳-碳键的列表。 这些是有效的直链烯烃的一些例子: [] CH4 Methane [1] CH3-CH3 Ethane [2] CH2=CH2 Ethene [3] CH≡CH Ethyne [1,1] CH3-CH2-CH3 Propane [1,2] CH3-CH=CH2 Propene [1,3] CH3-C≡CH Propyne [2,1] CH2=CH-CH3 Propene [2,2] CH2=C=CH2 Allene (Propadiene) [3,1] CH≡C-CH3 Propyne [1,1,1] CH3-CH2-CH2-CH3 Butane ... 尽管这些不是,但是至少一个碳原子具有四个以上的键: [2,3] [3,2] [3,3] ... 您的任务是创建一个给定正整数的程序/函数,该程序/函数n输出/返回长度恰好为碳原子的有效直链烯烃的数量n。这是OEIS A077998。 规格/说明 您必须1通过返回正确处理1。 烷基*喜欢[1,2]并且[2,1]被认为是不同的。 输出是长度给定长度的所有可能的ALK *内斯的列表。 你不是要正确处理0。 …

16
输出欧拉数
给定非负整数输出欧拉数(OEIS A122045)。n,n,n ,nthnthn^{\text{th}} 所有奇数索引的欧拉数均为可以使用以下公式计算偶数索引的欧拉数(表示虚数单位): 0.0.0 .i≡−1−−−√i≡−1i \equiv \sqrt{-1}E2n=i∑k=12n+1∑j=0k(kj)(−1)j(k−2j)2n+12kikk.E2n=i∑k=12n+1∑j=0k(kj)(−1)j(k−2j)2n+12kikk. E_{2n} = i \sum_{k=1}^{2n+1}{ \sum_{j=0}^{k}{ \left(\begin{array}{c}k \\ j \end{array}\right) \frac{{\left(-1\right)}^{j} {\left(k-2j\right)}^{2n+1}}{2^k i^k k} } } \,. 规则 nnn将是一个非负整数,因此欧拉数在您的语言可表示的整数范围内。nthnthn^{\text{th}} 测试用例 0 -> 1 1 -> 0 2 -> -1 3 -> 0 6 -> -61 10 -> -50521 20 -> 370371188237525

19
URL友好的标题
这个网站上的人们真的很喜欢修饰自己的帖子标题... Stewie's sequence: + * - / + * - / 但是,当此标题需要包含在页面URL中时,它可以简化: stewies-sequence 挑战 您的任务是创建一个程序或函数,给定代表帖子标题的字符串,该程序或函数将输出/返回其“ URL友好”转换。 该算法是: 转换为小写字母(如果适用) 用破折号()替换每个空格(),句点(.),逗号(,)或斜杠/(-) 删除所有非字母数字字符,破折号除外。 缩小相邻破折号(a---b -> a-b)的组,删除所有前导/尾随的破折号。 请注意,此算法只是一种简化,可能不会总是产生与该站点的真实方法相同的结果。 规则 您可以假设输入: 不会为空。 将至少包含一个字母数字字符。 仅包含ASCII范围32-126中的字符(可打印) 允许使用完整的程序或功能。 这不准确的任务说明一个内置的是不是允许的。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜! 测试用例 该网站上的大多数帖子都将用作测试,但这是一个方便的列表: Loading... Forever -> loading-forever N(e(s(t))) a string -> nest-a-string "Hello, World!" -> hello-world URL-Friendly titles -> …

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.