Questions tagged «code-golf»

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

4
紧密连接的组件
如果图形中存在彼此之间的路径,则有向图中的两个不同的顶点将牢固连接。图的强连接组件是图的子集,以使子集中的每对不同的顶点都牢固连接,向子集中添加更多的顶点会破坏此属性。 您面临的挑战是将图分离为其紧密连接的组件。具体来说,您必须输出图中的所有SCC。 输入/输出: 作为输入,您可以使用有向边列表,邻接列表,邻接矩阵或任何其他合理的输入格式。询问您是否不确定。您可以假设图形没有完全断开的顶点,并且不存在自身边,但是您可以不做任何进一步的假设。您也可以选择将顶点列表以及顶点数量作为输入。 作为输出,您必须给出顶点的分区,例如顶点列表的列表(其中每个子列表是一个紧密连接的组件),或者给出顶点的标签(其中每个标签对应于一个不同的组件)。 如果使用标签,则标签必须是顶点或连续的整数序列。这是为了防止将计算拖到标签中。 例子: 这些示例获取边的列表,其中每个边从第一个条目指向第二个条目,并输出分区。您可以自由使用此格式或其他格式。 输入在第一行,输出在第二行。 [[1, 2], [2, 3], [3, 1], [1, 4]] [[1, 2, 3], [4]] [[1, 2], [2, 3], [3, 4]] [[1], [2], [3], [4]] [[1, 2], [2, 1], [1, 3], [2, 4], [4, 2], [4, 3]] [[1, 2, 4], [3]] [[1, 2], [2, …

30
交替符号序列
介绍 对于每个非零整数,数字的符号可以是+或-。零本身是无符号的(+0与相同-0)。在下面的序列中,我们将在正号,零和负号之间交替。该序列以开头1,因此我们1用一个正号,零(这个数字很奇怪,但是我们将数字乘以0)和一个负号来写: 1, 0, -1 下一个数字是2,我们再次执行相同的操作: 2, 0, -2 最终的顺序是: 1, 0, -1, 2, 0, -2, 3, 0, -3, 4, 0, -4, 5, 0, -5, 6, 0, -6, 7, 0, -7, ... 或者更具可读性的形式: a(0) = 1 a(1) = 0 a(2) = -1 a(3) = 2 a(4) = 0 a(5) = …

1
帮助开发Alphys最新拼图!
地下皇家科学家Alphys已经完成了一个新拼图的原型。但是,她似乎找不到任何愿意测试的人。 她的困惑规则如下: 目标是从左侧最中心的图块开始,到达右侧。对于高度为偶数的拼图,请从两个中心磁贴中的较低者开始。(示例:在索引为零的4x4数组中,起始位置为[2,0]-第2行,第0列。在索引为零的5x5数组中,起始位置为[2,0]-第2行,第2列0.) 每个彩色图块都有自己的“ adsistic”功能: 粉色和绿色磁贴(分别表示为“ P”和“ G”)没有任何作用 红色和黄色的磁贴(“ R”,“ Y”)不可逾越。 橙色方块(“ O”)使玩家闻起来像橙色 紫色瓷砖(“ U”)会迫使玩家朝他们面对的方向移动到下一个瓷砖,并使它们闻起来像柠檬 蓝色瓷砖(“B”),只要播放器是通行不闻起来像橘子。 为了阐明风味机制,玩家的气味将无限期地持续,或者直到被不同气味的瓷砖所覆盖为止,即,如果玩家踩到橙色瓷砖上,他们会闻起来像橙色,直到他们踩到紫色瓷砖上为止。 另外,与蓝色瓷砖垂直或水平放置的黄色瓷砖也会导致蓝色瓷砖无法通行。 您的任务是编写一个程序或函数,该程序或函数接受表示拼图布局的二维字符数组(或一维字符串数组,或其他有效格式)作为输入,并输出原始拼图和已解决的拼图,并带有星号或某些其他字符显示正确的路径。假设给定的难题是可以解决的。 以这个难题为例: BGYBG PGPBG PUBPB OUGYB PPOPP 您的程序将输出: BGYBG PGPBG PUBPB OUGYB PPOPP BGYBG PGPBG ***** OUGYB PPOPP 必须使用this生成使用的任何拼图。 适用标准代码高尔夫规则。最佳答案将是每种语言的最短答案。答案必须包含语言,字节数和三个测试用例。前两个可以是您选择的任何布局,但第三个必须是: RRRR RPPR PUOR RPBP

10
创建落球图
介绍 对于以前从未听说过该游戏的人。您正在打一个需要尽可能长久生存的球。这是通过向左或向右移动,然后转到孔来完成的。由于地图向上移动,因此您需要向下移动才能生存更长的时间。如果您搜索图像,您可能知道我的意思是哪个游戏。 任务 给定正整数n,输出n层的下降球图。在各层之间,有4条换行符。层的宽度由25个下划线字符组成,其中一个孔的长度为5。这意味着总宽度等于30。在每个层之后随机地移动该宽度。有效层的示例是: _______________ __________ 孔也可以在边缘,就像该层像圆柱一样: _________________________ 请注意,有2个前导空格和3个尾随空格。制作单曲宽度5的孔。 测试用例 对于n = 4,这是有效的输出: _______________ __________ ______ ___________________ _______________________ __ _________________________ 注意:孔必须均匀分布。尾随和/或前导换行符是允许的。 这是代码高尔夫球,因此,字节数最少的提交将获胜!

15
最小标量积
最小标量积 此代码高尔夫球问题的灵感来自Google的代码堵塞竞赛。问题的前提是,在输入两个长度不同的向量的情况下,找到最小可能的标量。可以使用以下公式找到标量: x1 * y1 + x2 * y2 + ... + xn * yn 然而,问题在于,取决于输入情况下数字的顺序(如下所示),可以找到标量的多个值。您的目标是通过将输入用例编号插入方程式并求解来确定最小可能的标量整数解。您只能在输入中使用每个数字一次,并且必须使用所有数字。 请允许我提供一个带有以下向量的示例。 输入值 3 1 3 -5 -2 4 1 输出量 -25 该行上的第一个整数表示每个向量中的数字n。在这种情况下,每个向量有三个数字。 数字n可能会随每个测试用例而变化,但是总会有两个向量。 在示例输入中,最小标量积为-25。 (-5 * 4) + (1 * 1) + (3 * -2) = 25 规则 您只能在两个向量中使用每个整数一次。 您必须在向量中使用所有整数。 您的输出必须仅包含最终产品 我将以最少的语言选择使用最少语言的解决方案,该解决方案应使用任何语言,都遵循上面列出的所有规范! 提示:您无需强求这个问题,除非它会使您的代码更短。找到最小跨度标量有一种特定的方法:)。

24
无重复的随机数组
我在这里回答一个挑战,这项任务是挑战的一部分。我在JavaScript中有73个字节的解决方案。但是我认为简单的事情太过分了。 挑战 给出两个整数作为输入: N 预期数组的长度 R的时间间隔的范围在开始一个:1..R,不0..R-1 在程序/函数的每次运行中,输出一个长度不同的数组,N其值之间的间隔1..R不超过一个。 您必须R-value在代码中使用。 限制条件 您可以假设:2 <= N <= R。 我真的很想看到比我的73个字节短的javascript解决方案。 但是,当然,它对所有语言都开放! 如果您的语言无法返回数组,则可以打印所有数字;)

10
列的块对角矩阵
灵感来自于Stack Overflow的此问题。 给定一个矩阵A,创建一个矩阵B,使的列A以块对角线的方式排列。例如,给定 1 2 3 4 5 6 输出将是 1 0 0 4 0 0 0 2 0 0 5 0 0 0 3 0 0 6 规则 输入和输出可以采用2D数组,嵌套数组或具有不同行和列分隔符的字符串的形式。 输入(matrix A)中的数字将为正整数。 一元格式是允许的,只要以某种合理的方式在输出中显示零即可。例如,可以使用引号将每个数字括起来显示上述结果: '1' '' '' '1111' '' '' '' '11' '' '' '11111' '' '' '' '111' '' '' …

5
解析嵌套的数字前导字符串
任务 通过S以下过程构造字符串: 从...开始 S是空字符串。 插入S格式为的字符串的某个位置ds,其中d是非零数字,并且s是d小写ASCII字母的字符串。我们说ds是一个组成部分的S。 转到步骤2或停止。 您的任务是采用这样的字符串作为输入,并按其前导数字的出现顺序将其组成部分输出为单个字符串。输出必须是单个字符串,并且成分之间不能有任何定界符(包括换行符)。您可以选择输入和输出字符串是否带有引号。请注意,输入和输出永远不会为空。 例 让我们用上述过程构造一个字符串。最终结果突出显示了成分的结构。 S = "" // Insert "3abc" S = "3abc" // Insert "2gh" after 'a' S = "3a2ghbc" // Insert "1x" before '3' S = "1x3a2ghbc" // Insert "3tty" after '3' S = "1x33ttya2ghbc" // Final result └┘│└┴┴┘│└┴┘││ └────┴───┴┘ 通过按数字的顺序将组成部分串联在一起来获得输出。在这种情况下,正确的输出是 "1x3abc3tty2gh" 规则和计分 …

11
二进制子串的总和
这个挑战很简单,给定一个十进制数,将其转换为二进制数,并计算其长度小于原始数的二进制数子串的总和。这是一个例子: Input: 11 Binary: 11 -> 1011 Substrings: 101 = 5 011 = 3 10 = 2 01 = 1 11 = 3 1 = 1 0 = 0 1 = 1 1 = 1 Sum: 5+3+2+1+3+1+0+1+1=17 Output: 17 您的程序应采用一个十进制整数作为输入,并输出二进制子字符串的总和,如上所述。您可能会假设输入的二进制表示形式始终有两位以上的数字,并且输入的内容在程序执行期间不会引起任何错误。 这是代码高尔夫球,以字节为单位的最短代码胜出! 测试用例: 2 => 1 3 => 2 4 => …

13
获取最接近数字的值
在此代码中,您需要从列表中的另一个号码获得最接近的号码。 输出可能是最接近输入的数字。 例: value: (Input) 5 --- [1,2,3] --- 3 并且,该程序可能会使用负数。 例: value: (Input) 0 --- [-1,3,5] --- -1 value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers) 规则: 如前所述,它必须使用负数。 如果有两个答案(例如:0-[5,-5]),则程序将优先考虑最低的数字。(-5) 这是代码高尔夫球,所以最短的代码获胜!

3
任意精度整数部
我们将实现任意大整数的除法。 这是代码高尔夫球。 任务是编写实现任意精度整数和除法的程序或函数。 请注意,不允许使用许多可能会很容易做到的事情,请确保通读规范。 输入值 您将获得两件事作为输入: 一串以10为基数的数字,将其称为n。 另一个以10为基数的字符串,称为 m 假设这n>m>0意味着您将永远不会被零除。 输出量 您会输出两个数字,Q和R其中M * Q + R =正和0 <= R <米 技术指标 您的提交应适用于任意大整数(受可用内存限制)。 您可能不使用外部库。如果需要用于I / O的外部库,则可以将其视为内置库。(查看iostream之类的内容)。 如果您的语言有一个内置的功能可以解决这个问题,则您可能无法使用它。这包括(但不限于)可以处理任意精度整数的内置类型。 如果某种语言由于某种原因默认情况下使用任意精度整数,则此功能不能用于表示通常无法以64位存储的整数。 输入和输出必须以10为底。不管如何将数字存储在内存中或如何对它们进行算术运算,但I / O将以10为底。 您有15秒的时间来输出结果。这是为了禁止迭代减法。 这里的目标是实际实现任意精度的整数。如果您出于某种原因能够遵守挑战规范,并且在没有实施挑战规范的情况下成功做到这一点,那么我想对您有好处,听起来很有效。 测试用例 在这种情况下,输入为39!还有30个! 输入值 n = 20397882081197443358640281739902897356800000000 m = 265252859812191058636308480000000 输出量 Q = 76899763100160 R = 0 n是最多50个阶乘的和的总和,再加上1。m最大是20的级联数。 输入 …

21
数字顺序降序
介绍 例如,让我们以数字为准7。然后,我们将其复制并在它们之间放置7个空格。我们得到这个: 7_______7 之后,我们将减少数量,直到没有剩余空间为止。对于数字7,我们得到以下内容: 7_______7 6543210 然后,我们将它们两个合并,所以: 7_______7 6543210 becomes 765432107 N = 7时将输出。 看起来很简单,对吧?现在让我们取N = 12。我们再次在两个数字之间插入12个空格,从而得到: 12____________12 然后我们开始递减: 12____________12 111098765432 最终,这给了我们: 1211109876543212 如您所见,下降部分以2结尾,而不是 0结束。 任务 给定一个大于1的整数,输出降序序列,如上所示。 测试用例 Input Output 2 2102 3 32103 4 432104 5 5432105 6 65432106 7 765432107 8 8765432108 9 98765432109 10 10987654321010 11 111098765432111 …

3
检查工作时间
介绍 在德国,工作时间的规定非常严格。如果您每天工作6个小时或以上,则必须至少休息30分钟。如果您工作9个小时以上,则需要休息45分钟。如果您的工作时间少于6个小时,则无需休息。 当然,您可以拆分这些休息时间,但每个部分的时间至少必须为15分钟才能计算在内。 挑战 在此挑战中,您将获得工作时间列表,并且必须使用以下规则检查是否已采取足够的休息时间: 我们w要以小时为单位的工作时间: w < 6 -> No breaks needed 6 <= w < 9 -> 30 minute break needed w >= 9 -> 45 minute break needed 此外,每个休息时间必须至少15分钟。另外,您总是可以休息多于所需时间。这些都是“至少”值。 输入值 您的输入将是工作时间列表。确切的格式由您决定,但是它只能包含时间值,例如小时和分钟。 例: 这里的格式是一个元组列表,而每个元组代表一个工作周期。元组中的第一个元素将是开始时间,第二个元素将是结束时间。 [("07:00","12:00"),("12:30","15:30"),("15:45","17:15")] 这导致总工作时间为9.5小时,总休息时间为45分钟。 请注意,这些工作时间不必用休息时间隔开。也可能存在彼此紧随的工作周期(示例请参见测试用例)。 另请注意,休息时间不会计入工作时间。这些是两个单独的值。 您可以假定工作期是有序的。 输出量 鉴于这种输入,输出truthy值,如果采取和足够的休息falsy如果没有价值。 规则 指定您在提交中使用的输入格式。 您不必处理空输入。总会有至少一个工作周期。 工作时间仅为一天,因此您不必在午夜时分上班。 只要您的语言附带日期/时间/任何内置函数即可。 允许功能或完整程序。 输入/输出的默认规则。 …

3
这个词是什么语言?
您应该编写确定给定单词语言的程序或函数。 任务是识别4种语言中的5000个最常见的单词: 英语 德语 义大利文 匈牙利 单词列表可以在此GitHub存储库中找到。 您可以在提供的40%测试用例中犯错误。即您可以将20000个输入中的8000个错误分类。 细节 这些名单只包含有小写字母的话a-z那么如won't和möchte不包括在内。 几种语言会以多种语言显示,这意味着您的代码无法始终正确地猜测预期的输出。 为了方便起见,您可以将所有测试用例下载为一个列表。在每一行中,一个数字表示单词的语言。(1用于英语,2德语,3意大利语和4匈牙利语。) 不允许出现标准漏洞。 禁止使用单词表列出您的编程语言提供的类似数据。 输入值 仅包含小写英文字母(az)的字符串。 尾随换行符是可选的。 输出量 您可以通过为每种语言提供清晰一致的输出(始终相同)来对单词进行分类。(例如1,英语,2德语,3意大利语和4匈牙利语。) 这是代码高尔夫球,因此最短的程序或功能将获胜。 相关代码高尔夫问题:这甚至是一个单词吗? 单词列表来自wiktionary.org和101languages.net。

10
对齐函数参数
给定代表函数定义的字符串输入,输出带有换行符和空格的字符串,以使函数的参数以换行符分隔并对齐。 输入字符串将遵循以下模式: 首先,它将以前缀开头,该前缀始终至少一个字符长,并且不包含任何字符,()。 (然后,括号()将标记参数列表的开始。 然后是零个或多个参数的列表。这些由字符串", "(逗号,然后是空格)分隔。所有参数均不包含任何字符,()。 圆括号())将标记参数列表的结尾。 最后,可以找到一个后缀,该后缀的长度为零个或更多,并且 可能包含字符,()。 输入字符串将仅由可打印的ASCII组成(这意味着它绝不会包含换行符)。 输出必须是: 前缀(逐字向下复制)和右括号。 参数列表,这次不是用", "逗号,换行符分隔,而是垂直对齐每个参数的第一个字符所需的空格。 封闭括号和后缀(如果存在)逐字记录。 由于这是code-golf,因此以字节为单位的最短代码将获胜。 测试用例(格式:单行输入,然后是输出,然后是双换行): def foo(bar, baz, quux): def foo(bar, baz, quux): int main() { int main() { fn f(a: i32, b: f64, c: String) -> (String, Vec<i32>) { fn f(a: i32, b: f64, c: String) -> …
16 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.