Questions tagged «code-golf»

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

25
重要空白:警察
为了解决这一挑战,我们将空白定义为仅换行(0x0A)和空格(0x20)。请注意,大多数语言和正则表达式都将许多其他字符也视为空格,无论是在ASCII范围内还是在ASCII范围之外,因此您可能无法使用相应的内置函数。 警察的挑战 您应该使用自己选择的语言编写程序或函数,该程序或函数采用由ASCII(NUL除外)字符组成的字符串作为输入,并输出删除了所有空白的字符串。例如,如果您收到以下输入: H e l l o, W o r l d! 你应该输出 Hello,World! 然后,您提交的内容将是您的源代码,其中所有空格都将被删除(与将解决方案作为输入传递给自己的过程相同,尽管您的解决方案也可能包含ASCII范围之外的字符)。您的目标是尽可能地找出需要插入空白的位置,以便以您选择的语言恢复有效的解决方案。请注意,强盗插入的空格可能少于您删除的空格,但不会更多。还要记住,强盗不必匹配您的确切代码,他们只需要找到任何有效的解决方案即可。 您的答案应包含以下内容: 解决方案的编写语言(如有必要,还提供版本)。 删除空格之前,解决方案的字节数。 删除空格的解决方案。 您的解决方案可以是程序或函数,但不能是代码段,并且您不得使用REPL环境。您可以通过STDIN,命令行参数或函数参数进行输入,并通过STDOUT,函数返回值或函数(输出)参数进行输出。 为了公平起见,必须为您选择的语言提供免费的解释器或编译器。 您不得使用内置函数进行散列,加密或随机数生成(即使您将随机数生成器植入固定值)。您的解决方案必须能够在合理的台式机上在10秒内处理100个字符以内的字符串。 如果您的答案在7天(168小时)内没有被破解,则可以透露自己的解决方案,此时您的答案被认为是安全的。只要您不公开解决方案,即使7天已经过去,它也可能会被强盗破解。最短的安全答案将获胜(在删除空格之前进行测量)。 如果您的答案确实不完整,请在答案的标题中指出,并提供指向相应强盗答案的链接。 去这里抢劫犯的一部分。 完整的提交 <script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 103182;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script> …

30
打印所有ASCII字母数字字符而不使用它们
挑战 打印以下字符: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 要注意的是,您不得在代码中使用其中任何一个。 您可以按任意顺序打印它们,带有或不带有开头或结尾的换行符,但不能打印任何其他字符。 规则 您不得使用上述集合中的任何字符 您可以使用其他任何字符 别作弊 禁止标准漏洞 这是代码高尔夫球,最短答案胜出。 澄清说明 如果您的语言使用其他字符集,则不得在该字符集中使用与字母数字字符相对应的代码点。 从函数返回字符串被认为是有效的输出形式。 您可以返回一个char数组。

12
连续投票检测
Stack Exchange自动检测连续投票(当一个用户对另一位用户的许多帖子进行投票或否决时)并将其撤消。在这个挑战中,您将实现一个非常非常简单的“序列投票”检测器。 输入项 输入是代表投票列表的字符串。每个由两个字符组成的组代表一个投票-第一个是投票者,第二个是被投票的用户。例如,以下输入 ababbccd 可被分析为ab ab bc cd,代表a投票的b两次 b投票权的c一次,c投票权的d一次。 输入将仅包含小写字母,并且始终是大于0的偶数长度。您也无法对自己进行投票(因此,no aa或hh)。 输出量 出于此挑战的目的,串行投票被定义为任何给定用户对任何其他用户进行三次或更多次投票。 输出是多少票应为每个用户相反(即,许多票如何在每个用户的互换,没有多少票,他们给了被逆转),格式[user][votes][user2][votes2]...。例如,输入abababab(a上投票b四次)应输出 b4(四票已经从逆转a到b)。 输出可以按照您想要的任何顺序进行,但是如上所述,输入和输出都必须是单个字符串。 测试用例 In Out --------------------------------------------------------------------------- abababcbcbcbcbbababa b7a3 edfdgdhdfgfgfgih g3 jkkjjkkjjkkjljljljmlmlnmnmnm j6k3m3 opqrstuv <none> vwvwwvwv <none> xyxyxyxyxyxyxyzyzyzyxzxzxz y10z3 nanananananananabatman a8 banana <none>
51 code-golf 

18
我的4音符音乐盒可以播放那首歌吗?
我有一个曲柄操作的音乐盒,可以播放四个音符。当我转动曲柄时,它会根据曲柄的位置和转动的方向拔出四根弦之一。当曲柄向北旋转时,此框(其字符串从1到4编号)如下所示: 1 | 2 | O 4 3 从那里,我可以顺时针旋转曲柄以拔出#2弦,然后将曲柄指向东: 1 2 O--- 4 3 或者,我也可以从北方逆时针旋转曲柄以播放#1弦,并以指向西的曲柄结尾: 1 2 ---O 4 3 然后,该框可以在任何给定时间播放两个音符之一:顺时针方向可用的下一个音符或逆时针方向的下一个音符。 挑战 您面临的挑战是编写一个程序或函数,该程序或函数接受非空的音符值字符串(即数字1到4),并确定是否有可能在音乐盒上播放该音符序列。产生真实或错误的结果以指示输入的可播放性或不可播放性。 一些注意事项: 输入不对初始开始位置做任何假设。输入214(从东开始并严格按逆时针方向移动)和234(从北开始并严格按顺时针方向移动)输入均有效。 每次发出音符后,曲柄可在任一方向上自由移动。33333通过在一个字符串上来回移动,可能会产生一系列相同的音符(例如)。该系列赛1221441完全可以玩(从西开始,顺时针移动两步,然后逆时针移动三步,然后顺时针移动两步)。 样品 一些true情况: 1 1234 1221 3333 143332 22234 2234 22214 1221441 41233 一些false情况: 13 (note 3 is never available after note 1) 1224 (after …

20
检测时间旅行
如今,无处不在的计算机-汽车,火车,滑板,甚至是核反应堆。您的软件将在时间旅行设备中运行的可能性只是时间问题。你能应付吗?您至少可以检测到吗? 你的任务: 编写一个循环并不断查询系统时间的程序,以检测时间旅行。 如果时间在两个连续查询之间向前移动一天或更长时间,则为向前时间旅行。在这种情况下,您的程序应打印: TS TS: YYYY? You mean we're in the future? 如果时间在两个连续查询之间向后移动了一定量,则为倒退时间旅行。在这种情况下,您的程序应打印: TS TS: Back in good old YYYY. TS TS是时间旅行前后的时间戳。YYYY是目标年份。 时间戳可以采用任何格式,包括至少4位数字的年,月,日,小时,分钟和秒,以非数字分隔。 局限性: 您必须至少支持19、20和21世纪的日期。 您必须使用发布此挑战之前使用的语言。 您必须在发布此挑战后才发布答案。 您必须使用发布答案之前使用的语言。 您只能在发布答案后对其进行编辑。 您的程序不得输出除所需输出以外的任何输出。偶尔出现“伟大的斯科特!” 被允许。 这是代码高尔夫球。最短的答案将获胜。 相关的电影参考可能会使您的答案太长,但可能会使您感到不满意。
51 code-golf  date 

15
高尔夫挑战赛,麦凯
麦克基先生是南方公园的一个人物,以他所说的一切都加上“ m'kay”而闻名。 编写一个程序或函数,将一串文本转换成Mackey先生会说的话。 麦凯安置 m'kay有一个随机的50%的几率被添加的标点符号后,,.,?和!。如果是这种情况,它将紧跟在其前面并在空格之前的完全相同的标点符号。 例如,在句子中Test, test.,m'kay可以添加两个位置:逗号之后和句点之后,每个位置都有50%的机会。可能的结果是Test, m'kay, test。或Test, test. M'kay.或Test, m'kay, test. M'kay.。 必须始终至少m'kay添加一个。而且,它不能总是在同一位置,m'kay可以添加的每个有效位置必须以相同的概率出现。也就是说,m'kay如果由于随机性而从未添加any ,则不能总是在字符串末尾添加m'kay。如果只有一个m'kay,即使强制存在,它也必须具有相同的出现在每个有效位置的概率。 如果m'kay是后?,.或者!,在m必须大写。 min 的数目m'kay必须在1到3之间统一选择。也就是说m'kay,mm'kay和mmm'kay都是所有可能的选择,每个选择的概率为0.33 ...如果必须将其大写(请参见上述规则),则m必须将其全部大写。 输入,输出 输入是ASCII字符串,其中包含从ASCII Dec 32(空格)到ASCII Dec 126(波浪号)的字符~。输入中没有换行符。您可能假设任何输入将至少包含之一, . ? !。 您可以假设m'kay输入中没有或没有任何变体。 输入可以来自STDIN,函数自变量,命令行或类似的东西。 输出可以通过STDOUT,函数返回或类似的东西进行。 测试用例 输入: Test. 可能的输出: Test. M'kay. 输入: Programming Puzzles & Code Golf Stack Exchange is a question and …
51 code-golf  string 

24
我的世界镜像
这是加尔文。只需尝试获得20个代表,以便该用户可以在PPCG Minecraft服务器聊天室聊天。 编写一个使用正整数的程序或函数。 如果整数是偶数(2、4、6,...),请打印或返回此确切的ASCII艺术字串: __ __ __ __ ___ /\ /\ | |\ | | / | | /\ | | / \/ \ | | \ | |-- | |--\ /__\ |-- | / \ | | \| |__ \__ | \ / \ | | 如果整数是奇数(1、3、5,...),则打印或返回此确切的ASCII美工字符串: __ __ …

30
生成曼德尔布罗特分形[关闭]
您的任务是绘制ascii中设置的mandelbrot。它看起来应该像 复数c在于Mandelbrot集,当序列z(n+1) = z(n)^2 + c,z(0) = 0仍然有限。为了这个挑战,您可以考虑cif的有界序列|z(32)| < 2。 使用您喜欢的语言中的ascii字符并使用尽可能少的字符,在(-2-i)到(1 + i)的复平面上绘制mandelbrot集,最低分辨率为40x30。

30
确定您的语言版本
您面临的挑战是编写一个可以在您的语言的不同版本中使用的多语言。运行时,它将始终输出语言版本。 规则 您的程序应至少在两种语言版本中运行。 程序的输出应仅是版本号。无多余数据。 您的程序可以使用任何您喜欢的方法来确定版本号。但是,输出必须遵循规则2。但是,如果您确定版本号,则输出只能是数字。 您的程序仅需要输出语言的主要版本。例如,在FooBar 12.3.456789-beta中,您的程序仅需要输出12。 如果您的语言在版本号之前或之后放置单词或符号,则无需输出这些单词或符号,只需输出编号。例如,在C89中,您的程序仅需要打印89,而在C ++ 0x中,您的程序仅需要打印0。 如果您选择打印全名或次要版本号,例如C89而不是C99,则只能打印名称。C89 build 32有效,而error in C89 build 32: foo bar无效。 您的程序可能不使用内置的,宏的或自定义的编译器标志来确定语言版本。 计分 您的分数将是代码长度除以其工作版本的数量。分数最低者获胜,祝您好运!

30
北极熊,北极熊,您听到了什么?
儿童读物《北极熊》,《北极熊》,您听到了什么? 有一个非常简单的模式。您可以使用本文来教入门编程概念。 我的儿子很快就对这个想法感到无聊,所以我决定去打高尔夫。 挑战 用您选择的编程语言,编写尽可能小的程序,该程序将打印以下文本。输出应完全匹配,包括大小写,空格和标点符号。 Polar Bear, Polar Bear, what do you hear? I hear a lion roaring in my ear. Lion, Lion, what do you hear? I hear a hippopotamus snorting in my ear. Hippopotamus, Hippopotamus, what do you hear? I hear a flamingo fluting in my ear. Flamingo, …

18
prime
“ prime ant”是一个顽固的动物,它会导航整数并将它们除以整数,直到只剩下质数为止! 最初,我们有一个无限数组A,其中包含所有> = 2的整数: [2,3,4,5,6,.. ] 设p蚂蚁在阵列上的位置。最初,p = 0(数组的索引为0) 每转一圈,蚂蚁就会移动如下: 如果A[p]是素数,则蚂蚁移至下一个位置:p ← p+1 否则,如果A[p]是合数,我们q是规模较小的除数> 1.我们把A[p]通过q,我们添加q到A[p-1]。蚂蚁移至上一个位置:p ← p-1 这是蚂蚁的第一步: 2 3 4 5 6 7 8 9 ... ^ 2 3 4 5 6 7 8 9 ... ^ 2 3 4 5 6 7 8 9 ... ^ …

30
Helloellolloloo Worldorldrldldd
编写一个程序,使用您输入的单词,然后将该单词添加到其本身的后面,减去第一个字母,然后重复执行,直到所有字母消失。例如,cat将变为catatt,并且hello将变为helloellolloloo。 输入 英文字母的26个字母中的任何一个。可能会有多个单词,并用空格分隔,应该将更改应用于每个单词。 输出输入 的单词,每个单词紧跟其后,第一个字母缺失,第二个字母缺失,依此类推,直到没有其他字母可添加为止。 更多示例: ill eel 输出 illlll eelell laser bat 输出 laserasersererr batatt darth vader 输出 dartharthrththh vaderaderdererr 这是代码高尔夫,所以最短的代码获胜。 澄清: 您可以将输入或输出视为列表。您可以使用换行符而不是空格来分隔单词。您可以在输入中添加尾随空格。
50 code-golf  string 

30
说明最小公倍数
给定两个正整数,A和B,示出了它们的最小公倍数通过输出破折号(两行-与长度)LCM(A,B)中的第一行和与垂直条第二线每个Bth的破折号替换每个Ath的破折号后(|)。 这样,每行的结尾将是两位的唯一|行。 例如,如果A = 6且B = 4,则LCM(6,4)= 12,因此: two lines of 12 dashes: ------------ ------------ replace every 6th dash in the first line with a vertical bar: -----|-----| ------------ replace every 4th dash in the second line with a vertical bar: -----|-----| ---|---|---| 因此,最终输出将是 -----|-----| ---|---|---| 输入数字的顺序应与行的顺序相对应。 以字节为单位的最短代码获胜。 测试用例 A …


30
找出不除N的最小数
这个挑战很简单,基本上就是标题中的所有内容:给您一个正整数N,并且应该返回最小的正整数,该整数不是N的因数。 一个例子:的约数N = 24是1, 2, 3, 4, 6, 8, 12, 24。该列表中没有的最小正整数是5,因此这是您的解决方案应找到的结果。 这是OEIS序列A007978。 规则 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 前100个术语是: 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 5, 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 5, 2, 3, 2, 3, 2, 4, 2, 3, …

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.