Questions tagged «code-golf»

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

22
建立字母金字塔
今天,我们要用字母建造一座金字塔!这是前5个字母的示例字母金字塔: 在前5个字母之间写下一个空格,先升后降。 A B C D E D C B A 对上面一行的前四个字母执行相同的操作,但是要有两个额外的前导空格: A B C D C B A A B C D E D C B A 重复相同的步骤,直到最后一行只是'A' A A B A A B C B A A B C D C B A A B C D E …

30
多少整数包含特定范围内的数字
程序应输入数字,范围的起点和范围的终点,并输出该数字在范围的起点和终点之间(包括两端)显示多少个整数。程序和功能都被允许。 输入示例 例如: //Input example 1 3,1,100 //Input example 2 3 1 100 //Input example 3 3 1 100 //Input example 4 a(3, 1, 100); 以上所有四个输入示例均有效,并且所有这些示例均表示3所讨论的数字,1范围的开头和范围100的结尾。 然后程序应输出3从1到100 包含在内的次数。3出现在整数3,13,23,30,31,32,33,...,93在总共19次。因此程序应将输出19作为输出,因为这是3从1到的范围出现了多少次100。 规则 程序和功能都被允许。 所有数字都是整数,表示不会有floats或doubles。 注意:搜寻的号码将始终在范围内0≤x≤127。在任何情况下都不会超出此0≤x≤127范围。 与第一个示例一样,情况为33,该数字3将被视为仅出现一次,而不是两次。 范围的开始和结束的值将介于-65536和之间65535。 范围起点的值永远不会超过或等于范围终点。 start < end 范围也包括在内。例如,如果输入为8 8 10,则范围为8≤x≤10,因此输出为1。 可以采用示例中显示的任何方式进行输入。您可以按照任何希望的方式将输入作为字符串或数字。 测试用例 3 1 100 19 3 3 93 …

6
电影标题样式字符串
挑战 有没有看过那些电影预告片标题(即火星人,星际等),它们之间的字母之间的巨大间隙慢慢散开? 面临的挑战是通过在字母之间插入适当数量的空格,在给定的字符串,间距倍数和方向的情况下重新创建这种效果。 例 输入:“ INTERSTELLAR”,间隙乘数:1.0,方向:向内增加 Output: I N T E R S T E L L A R 间距为:[1、2、3,...,3、2、1];用“。”替换空格。为了更好地展示间距: I.N..T...E....R.....S......T.....E....L...L..A.R 输入:“ INTERSTELLAR”,间隙乘数:0.5,方向:向内增加 Output: IN T E R S T E L L AR 间距乘以0.5,因此我们从整数除法得到[0,1,1,2,... 2,1,1,0];使用'。': IN.T.E..R..S...T..E..L.L.AR 输入:“ CODEGOLF”,间隙乘数:2.0,方向:向外增加 Output: C O D E G O L F 间距乘以2,向外增加,因此得到[8,6,4,2,4,6,8]; 替换为“。”: …

9
画一些ASCII框
取两个非负整数列表,并输出如下定义的ASCII框。 角和交点为加号:+(ASCII代码43) 垂直线是条形|(ASCII代码124) 水平线是负号-(ASCII代码45) 第一个输入列表指定水平方向上每个加号之间的减号数。 第二个输入列表指定垂直方向上每个加号之间的条形数量。 举几个例子更容易解释: 0 // No minuses between each + sign 0 // No bars between + signs ++ ++ ------------------ 1 2 // First a single minus, then two minuses 1 2 // First one bar, then two bars +-+--+ | | | +-+--+ | …

3
Brainf * ck循环问题
我遇到一个网络俱乐部的问题,要求您打印: ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 使用不超过29个字节的Brainf ** k,而不使用','字符。 我有一个工作代码: ++++++++++[>++++++>+++++++++<<-]>-->.<[>-.<-] 但是我的循环太长,超出限制发送了16个字节。 有没有更有效的方法将第二个和第三个单元格设置为58和90,以便我可以运行第二个循环?还是有一个更好的方法可以一起完成所有这些,而我只是没有看到?

16
(KevinC)三角DeciDigits序列
输入: 一个正整数n,它是1 <= n <= 25000。 输出: 在此序列中,我们从十进制数字1 / n开始。 然后我们将数字的总和取到逗号后的第n个数字(1索引);然后是数字总和,直到第(n -1)个,然后是(n -2)个,依此类推。继续直到n为1。 输出是所有这些总和的总和。 例如: n = 7 1/7 = 0.1428571428... 7th digit-sum = 1+4+2+8+5+7+1 = 28 6th digit-sum = 1+4+2+8+5+7 = 27 5th digit-sum = 1+4+2+8+5 = 20 4th digit-sum = 1+4+2+8 = 15 3rd digit-sum = 1+4+2 = …

5
重新创建Windows ME屏幕保护程序为ASCII
这种挑战来自灵感这个答案在向Ubuntu的堆栈交换。 介绍 还记得带有管道的Windows ME屏幕保护程序吗?是时候带回怀旧了! 挑战 您应该编写一个程序或函数来输出屏幕保护程序的ASCII表示。在屏幕保护程序中,应该有一个沿半随机方向增长的管道。 管道的起点将随机放置在屏幕的任何边界处,并且管件应垂直于边界(拐角的第一根管道可以是水平的也可以是垂直的)。每次滴答时,管道都会朝着其面对的方向(水平/垂直)生长,80%或者会偶然发生拐角20%。 管道表示 要创建管道,将使用6个unicode字符 ─ \u2500 horizontal pipe │ \u2502 vertical pipe ┌ \u250C upper left corner pipe ┐ \u2510 upper right corner pipe └ \u2514 lower left corner pipe ┘ \u2518 lower right corner pipe 输入项 程序/功能将采用3个输入值,这些值可以通过功能参数收集或提示给用户。 刻度线数量 屏幕宽度 屏幕高度 刻度线数量 对于每个刻度,都会在屏幕上添加一条管道。如果管道在同一位置生成,管道将覆盖旧管道。 例如,以3x3大小的屏幕 ticks …

30
打印数字根
这与My Word可以打败您的Word有所不同,因为它不那么复杂,只需要您对其进行计算,而不进行比较。 要找到数字根,请获取一个数字的所有数字,将它们相加,然后重复直到获得一个数字。例如,如果数字是12345,你会增加1,2,3,4,和5,越来越15。然后,您将添加1和5,然后给您6。 你的任务 通过STDIN给定整数N(0 <= N <= 10000),请打印N的数字根。 测试用例 1 -> 1 45 -> 9 341 -> 8 6801 -> 6 59613 -> 6 495106 -> 7 请记住,这是code-golf,所以字节数最少的代码将获胜。

14
残缺查询
我知道您一直想着通过网络代理体验生活乐趣的磨难和磨难。老实说,谁没有呢?今天,您的任务是实现这个目标(至少是其中的一部分)。由于大量用户坚持通过查询参数传递敏感信息(用户很愚蠢),因此网站X每天都有大量流量,并且正在寻找PaaS(显然这是指代理即服务)。您的任务是在将请求转发到其原始目的地之前,从请求中删除所有敏感查询参数。 输入项 遵循RFC3986第3节中 URI语法的格式正确的绝对HTTP URL 。 您可以假设没有碎片 简短格式示例,其中方括号中的任何内容表示可选: http[s]://[user:pass@]host.name.com[:port]/[?param1=value1&param2=value2...] 要删除的查询参数列表。 输出量 修改后的HTTP URL,不包含输入列表中定义的参数。 例子 http://example.com/ [foo] > http://example.com/ http://example.com/?foo=bar [] > http://example.com/?foo=bar http://example.com/ [] > http://example.com/ http://example.com/?foo=1&bar=2&baz=3 [foo,baz] > http://example.com/?bar=2 http://example.com/?foo=1&bar=2&baz=3 [foo,bar,baz] > http://example.com/ http://example.com/?foo&bar=2&baz= [foo,baz] > http://example.com/?bar=2 http://example.com/?abc=1&def=2&baz=foo [foo,bar] > http://example.com/?abc=1&def=2&baz=foo http://example.com/?foobar=baz [foo] > http://example.com/?foobar=baz http://foo:foo@foo.com:8080/?foo=1&bar=foo [foo] > http://foo:foo@foo.com:8080/?bar=foo …
19 code-golf 

13
进行气泡排序
创建一个需要两个输入的函数或程序: 应当排序的整数列表(少于20个元素) 一个正整数,N表示您应该进行多少次比较 函数将停止,并在N比较后输出结果的整数列表。如果在进行N比较之前对列表进行了完全排序,则应该输出排序后的列表。 在冒泡排序算法是众所周知的,我想大多数人都知道它。以下伪代码和动画(均来自链接的Wikipedia-文章)应提供必要的详细信息: procedure bubbleSort( A : list of sortable items ) n = length(A) repeat swapped = false for i = 1 to n-1 inclusive do /* if this pair is out of order */ if A[i-1] > A[i] then /* swap them and remember something changed …

4
将表达式转换为Panfix表示法
我正在浏览esolangs,偶然发现了这种语言:https : //github.com/catseye/Quylthulg。 关于这种语言的一个有趣的事情是,它不使用前缀,后缀或中缀,它使用 这三个名称,将其称为“ panfix”表示法。 这是一个例子。为了1+2在panfix中表示普通的中缀,它变为:+1+2+。注意操作符在操作数之前,之间和之后的状态。另一个例子是(1+2)*3。这变成了*+1+2+*3*。再次注意*关于操作数的所有三个地方情况如何+1+2+和的3。 挑战 正如您可能已经猜到的那样,此挑战中的任务是将表达式从infix转换为panfix。 一些澄清: 您只需要处理四个基本操作: +-*/ 您将不必处理那些一元版本,只需二进制 你必须处理括号 假设*/那时的正常优先级规则+-和所有左关联性。 这些数字将是非负整数 您可以选择在输入和输出中都留一个空格 测试用例 1+2 -> +1+2+ 1+2+3 -> ++1+2++3+ (1+2)*3 -> *+1+2+*3* 10/2*5 -> */10/2/*5* (5+3)*((9+18)/4-1) -> *+5+3+*-/+9+18+/4/-1-* 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

16
突出显示边界框,第一部分:笛卡尔网格
您会得到一个由.和组成的矩形网格#,如下所示: .......... ..#....... ....#..#.. ...#...... .......... 你的任务是填补的整个轴线对齐边框#进一步#: .......... ..######.. ..######.. ..######.. .......... 轴对齐的边框是包含所有的最小矩形#。 想要更多?尝试第二部分! 规则 您可以使用任意两个不同的打印的ASCII字符(0x20至0x7E的,包容性的),代替#和.。我会继续提到他们作为#和.对规范虽然剩下的时间。 输入和输出可以是单个换行符分隔的字符串,也可以是字符串列表(每行一个),但是格式必须一致。 您可以假定输入至少包含一行,#并且所有行的长度均相同。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 每个测试用例具有彼此相邻的输入和输出。 # # ... ... #.. #.. ... ... ... ... #.. ### ..# ### .#. ### #.. ### ..# ### ..... ..... .#.#. .###. ..... ..... ... …

14
目录计算
对于此挑战,将为您提供一条绝对路径和一条“新”路径(可以是绝对路径,也可以是相对路径),并且您需要返回最终路径。 例如,如果您当前的目录是/var/tmp/test: my_dir 要么 my_dir/ 应返回/var/tmp/test/my_dir ../../my_dir 应该回来 /var/my_dir /my_dir/./ 应该回来 /my_dir ../../../../../ 应该回来 / 要更加学究: 目录是由字母数字字符的非空字符串和符号-,_或. 路径是0或多个目录的列表,用分隔/。绝对路径以a开头/,相对路径则不是。路径可以包含结尾/。 给定第一个路径,您需要“解析”第二个路径。 解决的过程是: 测试第二条路径是否相对。如果是这样,则将绝对路径的目录插入第二个路径的开头。 如果任何目录为..,则将其和上一个目录删除。如果它是第一个目录,则只需将其删除。 如果任何目录为.,则将其删除。 输出最终的绝对路径。您不应该输出结尾/。 您不需要处理不正确的输入。无论所传递的目录在您的计算机上是否实际存在,这些命令都应该起作用。您可以假定所有内容都是目录,即使它具有扩展名。 测试用例 Absolute New Output "/a/b/c" "d" -> "/a/b/c/d" "/a/b/c/" "d" -> "/a/b/c/d" "/a/b/c/" "d/" -> "/a/b/c/d" "/a/b/c" "/d" -> "/d" "/a/b/c" "/d/" -> "/d" "/../a/b/c/" …

11
你到底是什么问题?
介绍 当您收到无聊的文本时,您只想尽快解决它。让我们观察以下文本: Ens colligi timenda etc priorem judicem. De quascunque ii at contingere repugnaret explicetur intellectu. Adjuvetis hoc fortassis suspicari opportune obversari vix eam? Dei praemia prudens hominum iii constet requiri haberem. Ima sane nemo modi fuit lus pro dem haud. Vestro age negare tactum hoc cui lor. Ne et …

30
反转布尔数组
一个不错的简单的 输入项 给定一个布尔数组(或可接受的替代方法),您可以假定该数组的长度永远不会超过32个元素。 [false, false, true, false, false] 输出量 反转数组的每个元素并将其输出。 [true, true, false, true, true] 规则 您可以编写完整的程序或仅编写函数 适用标准漏洞 每种语言以字节为单位的最短代码胜出! 测试用例 Input: [true, false] Output: [false, true] Input: //Example of acceptable alternative [0,1,1] Output: [1,0,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.