Questions tagged «code-golf»

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

12
从给定的字符串中提取一个字符串
系统会为您提供一个字符串和两个字符。您必须在字符串中这些字符之间打印字符串。 输入项 输入将首先包含一个字符串(非空或null)。在下一行中,将有两个字符,中间用空格隔开。 挑战 返回两个字符之间的字符串 例 Hello! What's your name? ! ? 应该导致输出: " What's your name" 规则 该字符串不得超过100个字符,并且仅包含范围(空格)至~(波浪号)(字符代码0x20至0x7E(包括0x20至0x7E))的ASCII字符。请参阅ASCII表以获取参考。 您必须从stdin(或最接近的替代方法)获取输入。 输出应用引号(")括起来。 您可以编写完整的程序或接受输入并输出最终字符串的函数 这两个字符将仅包含(空格)至~(波浪号)范围内的ASCII字符(字符代码0x20至0x7E(包括0x20至0x7E))。请参阅ASCII表以获取参考。 不能保证两个字符都在字符串中。 如果在字符串中找不到任何字符,请打印"null"。 如果在一个字符串中找到多个字符(除非两个字符相同),请打印"null"。 如果两个字符都相同,请打印字符串"null"。 测试用例 1) <HTML>code</HTML> > < --> "null" 2) What's what? ' ' --> "null" 3) abcdefghijklmnopqrstuvwxyz n k --> "lm" 4) Testing... e …
17 code-golf  string 

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

11
数金字塔
您应该编写一个程序或函数,该程序或函数接收一个不同整数的列表作为输入,并输出或返回以下倒置数字金字塔中输入数字的出现次数。 在每个步骤中,从原始列表开始,我们创建一个新的列表,其中包含每对相邻数字的最大值(例如5 1 2 6变为5 2 6)。当列表中只有一个数字时,我们停止。 完整的金字塔5 1 2 6就是 5 1 2 6 5 2 6 5 6 6 结果发生的次数分别3 1 2 4为5 1 2 6。 输入项 无重复的一个或多个整数的列表。(例如1 5 1 6无效。) 输出量 正整数列表。i列表的第th个元素是i金字塔中第th个输入数字的出现次数。 例子 输入=>输出 -5 => 1 8 4 => 2 1 5 9 7 => 1 …
17 code-golf  number 

4
团体疗法:确定团体
编写一个程序,确定给定的有限岩浆的乘法表是否代表一个组。岩浆是具有关闭的二进制运算的集合,这意味着 对于G中的所有a,b,a * b再次在G中(闭合) 令(G,*)为岩浆。如果(G,*)是一个组 对于G中的所有a,b,c,(a * b)* c = a *(b * c)(关联性) G中存在元素e,使得G中所有a的e * a = a * e = a(中性元素的存在) 对于G中所有a,G中都有ab使得a * b = b * a = e其中e是中性元素(存在逆) 眼镜 输入的字符串为n ^ 2-1个字符(岩浆中每个元素一个字符,允许为0-9,az),并且仅代表逐行读取的表,省略了操作员名称。您可以假定输入代表一个有效的岩浆(这意味着每个元素在标题行/列中仅出现一次)。 示例:这里有Z_4的表 + | 0 1 2 3 ----------- 0 | 0 1 2 3 …

7
使用Damm算法计算校验位
有流行的校验数字算法,例如Luhn,然后有很好的的,例如Damm算法。诸如Luhn之类的算法流行背后的唯一可能原因是,存在着代码实现它们的实现。这意味着我们作为一个社区有能力通过提供更好算法的高尔夫实现来改变世界。 因此,这个挑战就是通过使用您选择的语言编写一个函数或完整程序来改变世界,该函数或完整程序使用Damm算法来计算校验位。字符数最少(不是字节)的答案将在几周内被选为优胜者。请注意,所有帮助功能和操作表的声明都必须包括在字符计数中。如果是平局,将选择最流行的答案。 该算法围绕一个运算表,该运算表必须是10阶的弱完全反对称准群。可以在Wikipedia中有关Damm算法的文章中找到该运算表,该运算表将用于此挑战中。为了完整起见,我将在下面复制它: | 0 1 2 3 4 5 6 7 8 9 ----+---------------------------------------- 0 | 0 3 1 7 5 9 8 6 4 2 1 | 7 0 9 2 1 5 4 8 6 3 2 | 4 2 0 6 8 7 1 3 5 …
17 code-golf 

16
为黄金分割率连续分数生成MathJax
考虑到暂时禁用 MathJax,此问题中渲染的MathJax已替换为图像。仍然欢迎您发布答案,但是您必须在另一个站点上查看渲染的MathJax 。 PPCG 刚得到 MathJax!这意味着我们现在可以轻松地将格式正确的数学公式包含在帖子中。(便捷的MathJax教程。) 例如,这是用无限连续分数表示的黄金比例: 该公式的MathJax代码为 $$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}}$$ 您可以通过右键单击公式并遵循将数学运算显示为 → TeX命令来找到它。 该$$方法是在页面的,而不是内联中心显示自身。$内联使用单个。 挑战 编写一个程序,该程序接受一个非负整数n,并为黄金分割率的连续分数的许多“步”输出MathJax代码。 为了使所有答案都符合标准,您必须使用以下确切的 MathJax语法: 对于n = 0,输出必须为$$\varphi=1+\dots$$。 呈现为: 对于n = 1,输出必须为$$\varphi=1+\cfrac1{1+\ddots}$$。 呈现为: 对于n = 2,输出必须为$$\varphi=1+\cfrac1{1+\cfrac1{1+\ddots}}$$。 呈现为: 对于n = 3,输出必须为$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}$$。 呈现为: 对于较大的n,此模式继续。您可以说n代表方程式中分割线的数量。 笔记 \cfrac用于代替较常见的\frac。 \dots用于代替\ddotsn = 0。 从标准输入或命令行输入。 输出到标准输出(带有可选的尾随换行符)。 或者,您可以编写一个函数,将n作为整数,然后将MathJax代码作为字符串返回(或仍然打印出来)。 计分 以字节为单位的最小提交数将获胜。抢七局(Tiebreaker)转到了较早的提交。

7
数字的排序词法分区
挑战非常简单:给定一个数字,将其数字拆分为一个较小数字的数组,以使结果数字不变。要注意的是,您必须将其拆分为最大数组长度。 困惑? 您可以通过STDIN(或最接近的替代方法),命令行参数或函数参数以任何方便,明确的输入格式为您提供正整数。 您必须将数字的十进制数字划分为连续的,不相交的组。 这些数字组代表的数字数组应排序(按通常的,不递减的顺序),而无需重新排列组。 如果存在多个这样的分区,则必须将输入划分为尽可能多的数字。如果是平局,则返回一个这样的结果。 您可以将数组输出到STDOUT(或最接近的替代品)或作为函数返回值。如果是STDOUT(或最接近的替代产品),则应以任何方便,明确的列表格式打印阵列。 分割数不应包含前导零。因此,例如1002003,不能将其打印为[1, 002, 003]或[1, 2, 3],并且唯一有效的答案是[100, 2003]。 测试用例: 123456 -> [1, 2, 3, 4, 5, 6] 345823 -> [3, 4, 5, 8, 23] 12345678901234567890 -> [1, 2, 3, 4, 5, 6, 7, 8, 90, 123, 456, 7890] 102 -> [102] 302 -> [302] 324142 …

9
评估不平等链
编写代码以评估不等式链是对还是错。输入示例是字符串 3<=4!=9>3==3 这是正确的,因为其每个组成部分都是正确的: (3<=4) and (4!=9) and (9>3) and (3==3) 输入: 代表一个或多个不等式链的字符串。允许的比较运算符为 == equals != does not equal > is greater than >= is greater than or equal to < is less than <= is less than or equal to 允许的数字是1位数字0通过9。不会有任何空格,括号或其他符号。 输出: 不等式作为一致的Truthy或Falsey值的正确性。一致意味着每个Truthy输出都是相同的,每个Falsey输出都是相同的。 限制: 挑战的目的是让您编写处理不平等的代码,而不是让它们将它们作为代码进行评估,即使对于链中的单个不平等也是如此。因此,像Python的方法eval和exec计算结果或执行代码被禁止。查找以字符串形式给出的方法或运算符的函数也是如此。也不允许启动流程或程序来为您进行评估。 测试用例: 3<=4!=9>3==3 True 3<=4!=4 False …
17 code-golf 

6
追踪图像的色调
将图像加载到该堆栈片段中,然后将鼠标移到该片段上。将绘制一条从您的光标点开始跟随色相角的黑色曲线: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>canvas{border:1px solid black;}</style>Load an image: <input type='file' onchange='load(this)'><br><br>Max length <input id='length' type='text' value='300'><br><br><div id='coords'></div><br><canvas id='c' width='100' height='100'>Your browser doesn't support the HTML5 canvas tag.</canvas><script>function load(t){if(t.files&&t.files[0]){var e=new FileReader;e.onload=setupImage,e.readAsDataURL(t.files[0])}}function setupImage(t){function e(t){t.attr("width",img.width),t.attr("height",img.height);var e=t[0].getContext("2d");return e.drawImage(img,0,0),e}img=$("<img>").attr("src",t.target.result)[0],ctx=e($("#c")),ctxRead=e($("<canvas>"))}function findPos(t){var e=0,a=0;if(t.offsetParent){do e+=t.offsetLeft,a+=t.offsetTop;while(t=t.offsetParent);return{x:e,y:a}}return void 0}$("#c").mousemove(function(t){function e(t,e){var a=ctxRead.getImageData(t,e,1,1).data,i=a[0]/255,r=a[1]/255,o=a[2]/255;return Math.atan2(Math.sqrt(3)*(r-o),2*i-r-o)}if("undefined"!=typeof img){var a=findPos(this),i=t.pageX-a.x,r=t.pageY-a.y;$("#coords").html("x = "+i.toString()+", y = "+r.toString());var o=parseInt($("#length").val());if(isNaN(o))return void …

3
单词内的单词单词内的单词。。。
在这种大写字母的像素化字体中,所有字符均为5个单位宽和5个高。 ███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ …

20
生成任何随机整数
您的程序/功能应 输出正好一个整数 输出具有正概率的任何整数 至少以50%的概率输出大于1.000.000或小于-1.000.000的整数。 输出示例(必须全部输出): 59875669123 12 -42 -4640055890 0 2014 12 24 -7190464664658648640055894646646586486400558904644646646586486400558904646649001 说明: 尾随换行符是允许的。 不允许前导零。 -0 被允许。 最短的代码胜出。

8
相对vs绝对
如果某人在此网格中的A点处朝北,希望指示遵循绿色路线(因为他们只能遵循网格线)到达B点,您可能会告诉他们: 围棋North, North, West, East, East, South, East, East。 或同等 围棋Forward, Forward, Left, Back, Forward, Right, Left, Forward。 (其中,向右,向左或向后的命令隐含地意味着朝该方向转向然后前进。) 用一个参数编写一个函数,该函数沿相同的路径(不仅指向同一点)在这些绝对方向和相对方向之间转换。假设定向人员总是开始朝北。 如果参数是字母字符串,则NSEW返回等效的相对方向。 例如f("NNWEESEE")返回字符串FFLBFRLF。 如果参数是字母字符串,则FBLR返回等效的绝对方向。 例如f("FFLBFRLF")返回字符串NNWEESEE。 空字符串产生自己。假设没有其他输入情况。 如果您的语言没有函数或字符串,请使用最合适的方法。 以字节为单位的最短代码获胜。
17 code-golf 

7
从他的耳朵,手指和头部找到罪犯
在发现指纹和DNA测试之前,英国警察使用人体测量系统来识别重犯。对罪犯尸体的某些部位进行了测量并存储在记录中-假定这些尸体成年后大小没有变化。该系统称为bertillonnage。 下图显示了警方用于快速访问这些记录的归档系统。 图1:带编号抽屉的归档系统。 注意:如果看不到图像,请尝试imgur镜像 或自己编译。 文件柜由81个编号的抽屉组成。每个抽屉里都装有卡,每个卡上都有罪犯身体特定部位的尺寸: 他们的头长(H) 他们的头宽(B) 右耳的宽度(E) 食指的长度(F) 每种度量都分为小,中或大。 例如,抽屉56包含具有以下特征的卡:小H,大B,介质E和F.小这可以使用字母来谱写S,M和L在地方小,中和大: SH,LB,ME,SF 请注意,尺寸字母排在最前面,然后是尺寸。另外,!可能在前面放置一个感叹号,从而引起负面影响: !SH,LB,!ME,SF 这表明,具有以下特点卡:不小H,大B,不介质E和F.小有包含卡具有这些特征的四个抽屉- 58,60,61,和63。 您的任务是编写一个程序,当给定一个指示某些特征的字符串时,输出包含该特征卡的所有抽屉。如果没有抽屉包含具有给定特性的卡片,则输出0。 这是一些示例输入和输出。 输入:SH,LB,ME,SF 输出:56 输入:!SH,LB,!ME,SF 输出:58,60,61,63 输入:SB,!MF,!LF 输出:1,2,3,4,5,6,7,8,9 输入:MH,!MH 输出:0 这是代码高尔夫球,因此最短的入场券获胜。如果规范不明确,请在注释中提出问题。
17 code-golf  math 

7
两对多输出
挑战 我向您介绍了另一种间谍对抗间谍挑战,点刺混淆器与饼干。但是,在这种情况下,要保护的数据不是输入而是输出。 挑战的规则很简单。编写具有以下规范的例程: 该例程可以用任何语言编写,但不能超过320个字节。 该例程必须接受三个32位带符号整数作为输入。它可以采用接受3个参数的函数,接受单个3元素数组的函数或从任何标准输入读取3个整数的完整程序的形式。 该例程必须输出一个带符号的32位整数。 在所有可能的输入中,例程必须输出2到1000(含)之间的唯一值。例程可以输出的唯一值的数量称为其键。 例如,C程序 int foo( int i1, int i2, int i3 ) { return 20 + (i1^i2^i3) %5; } 具有9的关键,因为它(希望)只能输出的九个值16,17,18,19,20,21,22,23,和24。 其他一些限制如下: 该例程必须是完全确定性的并且是时不变的,对于相同的输入返回相同的输出。该例程不应调用伪随机数生成器。 该例程可能不依赖于“隐藏变量”,例如文件中的数据,系统变量或深奥的语言功能。例如,例程通常不应引用常量,除非常量在代码本身中明确定义。强烈建议不要使用依赖于编译器怪癖的例程,数学上未定义的操作的输出,算术错误等。如有疑问,请询问。 您(编码人员)必须精确知道例程可以产生多少个唯一输出,并且应该能够提供至少一个产生每个输出的输入序列。(由于可能有成百上千的唯一输出,因此只有在您的密钥被争用的情况下才需要此集合。) 由于此问题与经典加密几乎没有相似之处,因此,我希望它将为更多的读者所熟悉。 越有创意,就越好。 计分 每字节计数最短的未破解提交将被宣布为获胜者。 如果有任何混淆,请随时提出或评论。 反挑战 鼓励所有读者,包括那些已提交自己例程的读者,“破解”提交的内容。当提交的密钥发布在关联的注释部分中时,该提交将被破解。如果提交的内容持续存在72小时而不被修改或破解,则被认为是“安全的”,随后在破解方面的任何成功都将被视为比赛的原因。 每个读者每次提交只能进行一次破解尝试。例如,如果我向用户X提交:“您的密钥是20”,但我错了,用户X将拒绝我的猜测为错误,并且我将不再能够为该提交提交其他猜测。 破解的提交将被排除在争用之外(前提是它们不安全)。不应对其进行编辑。如果读者希望提交新的例程,则应在单独的答案中提交。 破解者的分数是破解者提交的内容(符合或不符合)的数量。对于计数相同的饼干,排名由所有破解提交中的总字节数决定(越高越好)。 得分最高的饼干将与获胜常规的开发者一起宣布为获胜者。 请不要破解您自己的提交。 祝你好运。:) 排行榜 上次更新时间:9月2日,美国东部标准时间上午10:45 不可逾越的壁垒(非破解提交): CJam,105 [丹尼斯] 不可阻挡的力量(爆竹): 丹尼斯[ Java,269 …

4
编写一个程序,以防括号在空格导致停滞的情况下用空格替换
您是项目经理。有一天,您的一名程序员发疯了(不是您的错),并在代码库中提取了所有表达式,并在其中添加了随机括号,然后当场退出,对您的不称职(也不是您的错)表示愤慨。这将是一个简单的修复,但是由于某种原因,您没有使用修订控制(完全不是您的错)。出于某种原因,其他程序员都不想遍历每个表达式来修正不匹配的括号(顺便说一句,这不是您的错)。这些天的程序员,您自己想。您将必须自己做。惊恐的事件!这样的任务本该在你下面... 输入将是一行,其中将包含多个左括号(( [ {)和右括号() ] })。它还可能但不总是包含注释(/* */)和字符串文字(" "或' ')以及各种数字,字母或符号。 至少会有一个括号(在注释或字符串文字之外)没有相反的对应关系(在注释或字符串文字之外)。例如,}没有{先验的错误。另一个例子:一个(没有)事后的。您的程序将以空格替换使括号匹配所需的最小括号数。 例子: (4 + (2 + 3))]==> (4 + (2 + 3)) (末尾方括号) ][][[]]==> [][[]](开始方括号) ("Hel(o!"))==> ("Hel(o!") (末尾括号) ( /* )]*/==> /* )]*/ (末尾括号) {()]==> () (大括号和方括号) 可以从最方便的方式(STDIN,命令行参数,从文件读取等)获取输入。 如果使用相同的清除次数来解决不匹配问题的方法不止一种,则可以接受。 括号中只会有不匹配的内容。字符串文字和注释将始终正确形成。 标题来自此SO线程 注释中永远不会有任何报价,报价中的报价,注释中的注释或报价中的注释。 这是代码高尔夫,因此最少的字节数获胜。如果规范不明确,请在注释中提出问题。

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.