Questions tagged «code-golf»

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

28
约瑟夫斯问题(算出)
挑战 编写一个函数,该函数将两个正整数n和k作为参数,并在计算出每个第k人后返回n中剩余的最后一个人的人数。 这是一个代码挑战,因此以最短的代码为准。 问题 n个人(从1到n编号)围成一个圈,每个k-数被计数,直到剩下一个人为止(请参阅相应的Wikipedia文章)。确定最后一位的号码。 例如,对于k = 3,两个人将被跳过,第三个将被算出。即,对于n = 7,数字将按3 6 2 7 5 1的顺序计数(详细为1 2 3 4 5 6 7 1 2 4 5 7 1 4 5 1 4 1 4),因此答案为4。 例子 J(7,1) = 7 // people are counted out in order 1 2 3 4 5 6 …

30
查找最大序列长度
假设我们有一个字符串,并且我们想要找到每个字母的最大重复序列。 例如,给定样本输入: "acbaabbbaaaaacc" 样本输入的输出可以是: a=5 c=2 b=3 规则: 您的代码可以是函数或程序-供您选择 输入可以通过标准输入,文件或函数参数 输出应仅包含出现在输入中的字符 输入最大长度为1024 输出顺序无关紧要,但必须以[char] = [最大重复序列] [定界符]的形式打印 字符串可以包含任何字符 比赛于世界标准时间23:59星期四结束。
29 code-golf 

30
确定4个点是否形成正方形
编写一个函数,该函数将平面上的4个点作为输入,并且如果4个点形成一个正方形,则返回true。这些点将具有绝对值<1000的积分坐标。 您可以使用4点的任何合理表示形式作为输入。这些点没有以任何特定顺序提供。 最短的代码胜出。 正方形示例: (0,0),(0,1),(1,1),(1,0) # standard square (0,0),(2,1),(3,-1),(1,-2) # non-axis-aligned square (0,0),(1,1),(0,1),(1,0) # different order 非正方形示例: (0,0),(0,2),(3,2),(3,0) # rectangle (0,0),(3,4),(8,4),(5,0) # rhombus (0,0),(0,0),(1,1),(0,0) # only 2 distinct points (0,0),(0,0),(1,0),(0,1) # only 3 distinct points 您可以为退化的平方返回true或false (0,0),(0,0),(0,0),(0,0)
29 code-golf  math 

30
确定字符串是否相等
您的任务很简单。确定一个字符串是否等于另一个字符串(不是地址,即值),而不使用相等运算符(例如==,===或.equal())或不等式(!=,!==)任何其他语言类似。这意味着任何地方!您不得在代码中的任何地方使用这些运算符。不过,您可能会使用诸如!exp未直接比较的切换exp != with something else。 此外,您不得使用任何功能,例如strcmp,strcasecmp等。 至于比较运算符(>=,<=,>,<),他们也不允许。我意识到一些答案包括这个,但是我真的很想看到更多的答案,它们不等于等式运算符。 显示了使用PHP的示例: <?php $a = 'string'; $b = 'string'; $tmp = array_unique(array($a, $b)); return -count($tmp) + 2; 只需返回true或false(或某种在语言中评估为true或false的值(如0或1))即可指示字符串是否匹配。字符串应经过硬编码,如上例所示。高尔夫球中不应该计算字符串,因此如果您事先声明了变量,请不要计算声明。
29 code-golf 

13
有多少个吉米人可以容纳?
在这个简单而有趣的挑战中,您被要求确定Jimmy是否会掉下他们的平台。吉米有三个身体部位/,o以及\安排这样 /o\ 平台用表示-。如果Jimmy有两个或多个不位于平台正上方的身体部位,他们将掉下平台。 一些例子: /o\ - ------- 吉米会保持平衡,因为他们的所有身体部位都超过了-。 /o\ ------ --- 吉米将平衡,因为两个身体部位都在-s 之上。 /o\ -- ---- -- 即使将Jimmy分为两个平台,他们也会保持平衡 /o\ - 吉米不会平衡,因为两个身体部位不在平台上方。 您的任务是编写一个程序,该程序将平台作为仅包含-s和s(例如,字符串)的加长容器,并输出可放置在平台上的吉米的数量,以使它们均不会掉落,也不会掉落。交叠。吉米人的身体部位之一可能位于弦首的左侧或弦尾的右侧。 这是代码高尔夫球,因此答案以字节计分,目标是减少字节数。 测试用例 输入项 - - - - - -- -- -- ---- - -- -- ------- - 各自的产出 0 0 1 1 2 2 2 3
29 code-golf  string 

30
吉米会掉下平台吗?
背景故事 认识我的朋友吉米: /o\ 吉米(Jimmy)是一个小人物,喜欢站在平台上。这是吉米安全地站在平台上的地方: /o\ ------------- 现在,吉米已经有了很好的平衡感,因此他可以放下一只脚,安全地站起来,就像这样: /o\ ------------------- 尽管如果他站着两个或更多身体部位离开平台,他将跌倒。这两个都是吉米将倒下的例子: /o\ /o\ ---------- ---------------------- 挑战 您面临的挑战是编写一个程序,在给出吉米平台和位置的字符串的情况下,确定吉米是否可以站在平台上而不脱落。 输入:两行显示Jimmy的位置和他下面平台的位置。这可以来自两个单独的输入,单个输入或某种数组。 您可以通过任何合理的形式接受输入,包括功能和标准输入。如果您的语言不支持其他输入法,则仅求助于硬编码。 输出:布尔值true和false,或者整数1或0分别表示true / false。 布尔值取决于Jimmy是否可以留在平台上-如果Jimmy可以留在平台上,则为true;如果他会跌落,则为false。 平台大小是任意的,可以随意更改。您的程序应说明这一点。 平台的长度不能为零,并且平台必须完整(平台上没有孔)。 请记住,吉米的两个身体部位悬在平台上时会掉下。身体部位是他身体的一个ASCII字符。 在平台末尾不需要尾随空格,但是您的程序应考虑两种情况,即平台后面有空格而没有空格。 注意标准漏洞禁止。 测试用例 /o\ ✔️ TRUE ------------- /o\ ✔️ TRUE ---------- /o\ ❌ FALSE ------------------ /o\ ❌ FALSE ------- /o\ ❌ FALSE - 计分 这是代码高尔夫球,因此最低字节数为准。 …

7
源代码变态
mbomb007要求我们编写一个自毁程序。这是一个有趣的挑战,但是我个人不喜欢鼓励自己的程序自残。我喜欢认为,每个程序的核心都是一只等待爆发的美丽蝴蝶。 因此,对于我的第一个Code Golf挑战,我挑战Stack Exchange将蝴蝶变身。您的程序应接受自己的代码作为输入和输出,I am a caterpillar!然后接受相同语言的另一个程序的代码(您可以在输出之间添加一个分隔符,但是我们说的是蝴蝶,所以漂亮才算重要!)。第二个程序应该输出I am a beautiful butterfly! 变形:该程序应自行修改,这就是为什么将其本身作为输入传递的原因。我不想一个无聊的嵌套程序,只不过是一个打印语句,I am a caterpillar!然后打印源代码。您必须使代码本身变形,因此,最无聊的可接受答案是将其打印出来I am a caterpillar,然后从输入中截取一个字符串(恰好是代码)并将其打印出来。当然,这是一个非常棘手的小要求,因此应将其视为“挑战的精神”。正式的要求将设置为“如果给您的程序一个与程序长度相同的随机字符串,则在I am a butterfly运行第二个程序时,打印的机会应该少于5%。” 摘要: 编写一个程序,当提供自己的代码作为输入时,先打印程序,I am a caterpillar!然后打印源代码块(在它们之间是否有定界符)。 编译/解释为相同语言时,第二部分源代码将输出 I am a beautiful butterfly! 如果您的程序没有以其自身的源代码作为输入,而是被赋予一个随机字符串,该字符串与自身的代码不匹配,则结果必须无法编译/解释,或者必须I am a butterfly!至少打印95%的随机字符字符串(精神:您应该从输入中读取您自己的源代码,并将其拼接成蝴蝶状)。 只要您坚持变形概念的精神,修改自己的代码,我对您不感到满意,但是如果您尝试玩漏洞游戏来解决输入问题,证明这一点。 适用标准漏洞 我希望通过它们的美观来判断它们,但这是绝对非量化的方法,因此可以使用通常的“字节数”路由来判断 奖励:-20%-选择与程序的前3个字母不匹配的任何3个字母字符串。如果运行卡特彼勒程序,但修改输入,以便将前3个字符更改为指定的字符,请打印I am Batman!。永远是蝙蝠侠。(相同的随机字符串规则也适用于此……变态!) 简单示例(python): """ print "I am a beautiful butterfly!" …

28
输出棋盘的所有白色或黑色方块
介绍 这就是棋盘的样子。 您可以看到这a1是一个黑色的正方形。但是,b1是浅色正方形。 任务 面临的挑战是,给定的dark,light或者both,输出所有的暗,光或所有正方形 的隔膜(如空白或换行)。所有正方形的顺序无关紧要。 测试用例 Input: dark Output: a1 a3 a5 a7 b2 b4 b6 b8 c1 c3 c5 c7 d2 d4 d6 d8 e1 e3 e5 e7 f2 f4 f6 f8 g1 g3 g5 g7 h2 h4 h6 h8 Input: light Output: a2 a4 a6 a8 b1 …

5
计算4频段彩色编码电阻器的电阻
电阻器通常具有色码带,用于标识其电阻(以欧姆为单位)。在此挑战中,我们将仅考虑常规的4频段,棕褐色,轴向引线电阻器。我们将它们表示为: xyzt 其中x,第一个有效数字的第一条带y是,第二个有效数字z的第二条带,乘数t的第三条带,公差的第四条带。 每个xyzt代表一个字母,代表乐队的颜色: K = Black N = Brown R = Red O = Orange Y = Yellow G = Green B = Blue V = Violet A = Gray W = White g = Gold s = Silver _ = None 因此,例如NKOg一些特定的电阻器。 可以借助此表来计算电阻: 如表所示: x并且y可以是任何字母除外g,s和_。 z除了可以是任何东西_。 我们会限制t仅是g,s或_。 (这是一个方便的电阻计算器,处理与我们完全相同的一组电阻器。) …

30
实施Bogosort
为解决数独太辛苦?甚至是蛮力版本?这是一个编码练习,要容易一些。我希望。:-P 编写最短的函数来实现bogosort。具体来说,您的功能应: 以数组(或您的语言的等效形式)作为输入 检查其元素是否按顺序排列;如果是这样,返回数组 如果不是,请重新排列元素,然后重新开始 入围时间最短者获胜。在平局的情况下,支持自定义比较器(和/或伪随机数生成器)的函数会受到青睐。通过支持较早的提交,可以解决任何剩余的联系。 说明:当然,您可以使用所需的任何元素类型,只要可以通过某种方式订购它们即可。而且,改组必须是统一的;这与“我将快速排序并改组”无关。:-)

30
行人余弦
我的老板只是告诉我写一个余弦函数。作为一名数学高手,我立即想到了合适的泰勒级数。 cos(x) = 1 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ... + (-1)^k x^(2k) / (2k)! + ... 但是,我的老板很挑剔。他希望能够精确指定要计算的泰勒级数的项。你能帮我写这个功能吗? 你的任务 给定x从0到的浮点值2 pi且n小于的正整数100,计算n上给出的泰勒级数的第一项的和cos(x)。 这是代码高尔夫球,因此最短的代码获胜。输入和输出可以采用任何标准方式进行。禁止出现标准漏洞。 笔记 输入可以采取任何形式合理的,只要有明确分开x和n。 输入和输出应为浮点值,至少与使用具有某些标准舍入规则的单精度IEEE浮点数计算公式的精度一样。 如果对所使用的语言有意义,则可以使用精确的有理量进行计算,但是输入和输出仍应为十进制形式。 例子 x | n | Output ----+----+-------------- 0.0 | 1 | 1.0 0.5 | …

20
Stewie的顺序:+ *-/ + *-/
让我们使用四个基本运算,加法+,乘法*,减法-和除法/(浮点数,而不是整数)。 Stewie的顺序定义如下: x = [x(1), x(2)] // Two initial numbers (one indexed) x(3) = x(1) + x(2) x(4) = x(2) * x(3) x(5) = x(3) - x(4) x(6) = x(4) / x(5) x(7) = x(5) + x(6) ... and so on. 挑战: 取两个非负整数(x(1), x(2))和一个正整数N作为输入。 x(1)并且x(2)将是序列的前两个数字,并且N将是您必须输出的序列的长度。(您可以选择使列表从0开始,在这种情况下N,长度将比长度小1)。 您不能假设x(2) >= x(1)。 N>2如果从1开始,则始终为(>1如果从0开始)。 您不必处理零错误。 …

30
该挑战使用“ +”字符
您的任务:给定一个数字n,生成一个“ +”号,该符号n远离其中心。如果这令人困惑,请签出测试用例。 输入的标准方法:输出必须是字符串或打印的。有标准漏洞。 Input: 1 Output: + ] 1 away from center `+`. Input: 2 Output: + ] 2 away from center `+`. +++ ] 1 away from center `+`. + Input: 3 Output: + ] 3 away from center `+`. + +++++ + + 这是代码高尔夫球,所以最短的代码获胜!

4
沿轮廓移动箭头
沙盒 给定一组闭合的非重叠2d轮廓(即使在对角线上也至少间隔一个空格),并且箭头始终沿相同的顺时针或逆时针方向(每个轮廓都有自己的方向)和正数方向n移动箭头n在各个方向上沿着轮廓移动。箭头分别由> v < ^右,下,左和上方向表示。那里的其他字符是-(水平),|(垂直)和+(角)。当箭头位于角上时,它将保持其当前方向并仅在转弯后才更改。 在任何两个角之间始终会有一个直线段(或空间)(例如+-+水平方向和垂直方向类似),也就是说,U禁止急转弯。拐角之间的线段是垂直或水平的,拐角处的弯曲始终为90度。 输入: 正整数-- n步骤数 轮廓的ASCII表示-它可以是多行字符串,字符串列表,字符列表等。 输出: 带有所有箭头的相同轮廓n在每个轮廓的整体方向上移动了台阶。 测试用例: 1。 输入: n = 1 +----->-> | | | v---+ | | +---<-------+ 输出: +------>+ | v | +>--+ | | +--<--------+ 2。 输入: n = 2 +-----+ +---+ | | | | +-->--+ | v | …

12
信箱验证器
《纽约时报》每天都有一个名为Letter Boxed的在线游戏(链接位于付费专栏后面;该游戏也在此处进行描述),该游戏在广场上显示如下: 您将获得4组3个字母的字母(每个组对应于图片的一侧);没有字母出现两次。游戏的目的是找到由这12个字母组成的单词(仅这些字母),以便: 每个单词至少3个字母长; 连续字母不能来自同一侧; 一个单词的最后一个字母成为下一个单词的第一个字母; 所有字母至少使用一次(字母可以重复使用)。 在这个挑战中,您会得到字母和单词列表。目的是检查单词列表是否是有效的Boxed解决方案。 输入值 输入包含(1)4组3个字母和(2)单词列表。它可以是任何合适的格式。 输出量 如果单词列表是对那些4×3字母的“盒装”挑战的有效解决方案,则为真值,否则为假值。 测试用例 字母组= {{I,C,O}, {M,R,E}, {G,N,S}, {A,P,L}}。 真实价值观 盗版,关闭 作物,航行,瘦肉,无腿,ENIGMA 假值 朝圣,经济(因为他们在同一边,所以不能有CO) 作物,风帆,瘦肉,无腿(未使用G和M) 封条,信封(U不是12个字母之一) ENCLOSE,PILGRIMAGE(第一个单词的最后一个字母不是第二个单词的第一个字母) SCAMS,SO,ORGANISE,ELOPE(所有单词的长度必须至少为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.