Questions tagged «code-golf»

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

4
ASCII Art射箭箭
编写一个程序或函数,该程序或函数需要一个正整数,并打印或返回根据输入比例缩放的射箭箭头的ASCII艺术插图。 如果输入是1输出 /\ / \ \__/ || || || || || || || || /||\ / || \ / || \ // \\ / \ 如果输入是2输出 /\ / \ / \ / \ \ / \____/ | | | | | | | | | | | | | | …

3
使用Python导入打高尔夫球
什么时候在Python中使用内联单次使用导入有益? 例如: __import__("x").doSomething() 以上是否比以下短? import x x.doSomething() 要么 from x import* doSomething()
16 code-golf  tips  python 

1
写一个D * mn明确的审查员
审查器是互连网上使用的常用工具。但是他们经常审查太多的单词,因此使读者感到模棱两可。有时,他们没有进行足够的审查,因此这些词仍然令人反感。您的任务是解决该问题。 你的任务 编写一个包含两个列表和一个字符串的程序/函数/程序。第一个列表将是您语言中所有单词的字典,例如:["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]。下一个将是第一个列表的子集,其中包含该语言中的所有令人反感的单词:["belgium", "offensive"]。确保这些列表中的单词仅包含小写字母。 该字符串是您必须检查的短语。它将由字典中的单词组成,并用空格分隔:"Goodbye offensive belgium" 返回值将是被检查的短语。但是,您必须以某种方式进行审查。具体来说,对于攻击性列表中的每个单词,您必须检查尽可能多的字母,同时在主词典中保持完全明确。因此,这里将是:Goodbye o******** b******。 澄清说明 您的代码必须不区分大小写地解释单词,但以大写字母返回。 如果有多个最佳答案,请选择其中任何一个。 如果无法进行明确的审查,则审查具有最少其他可能解释数量的单个字母(如果可能的话,则由您选择)。 测试用例 ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******" ["word"] ["word"] "word" -> "****" ["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" …

5
Code Golf:解析Google结果
当您在Google搜索结果中的内容页面时,用户可以看到绿色链接,显示结果的第一页。 使用任何语言,以最短的形式(以字节为单位)以列表的形式显示到stdout的那些链接。这是一个有关堆栈交换查询的第一个结果的示例: 输入: 您选择:URL(www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8)还是stackexchange 输出: french.stackexchange.com/, stackoverflow.com/, fr.wikipedia.org/wiki/Stack_Exchange_Network, en.wikipedia.org/wiki/Stack_Exchange,... 规则: 您可以使用URL缩短器或其他搜索工具/ API,只要结果与搜索https://www.google.com相同即可。 如果您的程序具有打开网络浏览器之类的副作用,这样可以使隐藏的Google html / js页面在呈现时可以读取,这是可以的。 您可以使用浏览器插件,用户脚本... 如果您不能使用标准输出,请使用例如将其打印到屏幕上。弹出窗口或JavaScript警报! 您不需要结尾的/或开始的http(s):// 您不应显示任何其他链接 最短的代码胜出! 祝好运 ! 编辑:本场高尔夫球比赛于15年8月8日结束。

16
给我编码一个cookie
挑战 根据输入编码一种ASCII cookie。 输入值 饼干种类。这是三个字符串之一:“普通”,“巧克力”或“坚果”。可以是函数参数,stdin(或最接近的等效参数)或文件参数。 输出量 ASCII cookie。见下文。 一定是 ___ / \ | | \___/ 对于普通输入, ___ /. .\ | . | \___/ 最后输入巧克力 ___ /^ \ |^ ^| \___/ 用于坚果输入。 其他资讯 这是我的第一个挑战,这很简单。建设性的反馈意见非常感谢。 使用任何手段来这样做。 尾随空格很好。 这是一场标准高尔夫挑战赛,因此在9天(2015年8月12日,星期三)结束时最短的比赛获胜。 谢谢! 获胜者是Jakube使用Pyth的41个字节。谢谢所有参加的人。我现在要自己承担一些更复杂的挑战。

1
溜槽
这是梨和钢 溜槽的五幅图像: A:B:C:D:E: 这些只是缩略图,请单击它们以查看完整尺寸! (我是用Algodoo制作的。) 此类图像始终具有以下属性: 它们始终是白色背景的400×400像素。(由于SE图像有损压缩,因此可能不是完全白色。) 它们有1至4个相同的梨,每个梨都以(几乎)任何方式旋转和定位。 他们有一个垂直的钢制斜槽,直达图像的底部。 除了滑槽的底部以外,滑槽和梨形边界框(例如边界框)永远不会触碰或超出图像边界。 梨的边界框永远不会相互重叠,也不会与斜槽重叠。 如在B,C和D中,梨可能在滑槽的倾斜部分下面。(因此,溜槽的边界框可能与梨的边界框重叠。) 溜槽可以有任何水平和垂直位置,只要有足够的空间让梨的所有包围盒自由地放置在其上即可(不会测试“几乎不适合”的情况),并且可以看到部分圆柱。 挑战 编写一个程序,获取这样的图像,并在相同的位置放置滑槽,再输出另一个400×400的图像,但是将梨重新放置,使它们都位于滑槽的上方(这样它们就可以掉入其中并被榨汁,没什么)。 输出图像的要求是: 输入图像中的所有梨都必须重新放置,以使其位于滑槽上方,漏斗左右边缘之间。(以上的边缘是不正常。) 每个梨必须保持其旋转角度。(因此,您应该剪切和粘贴梨子,而不是重新绘制它们。) 梨不得重叠或彼此接触或与滑槽接触。(但是,梨形边框可能会重叠。) 梨不能触摸或超出图像范围。 以下是这五个样本图像的有效输出示例: A:B:C:D:E: 这些只是缩略图,请单击它们以查看完整尺寸! 请注意,E的输入图像已经是有效的输出,但是在技术上不必要时重新排列梨就可以了。 细节 通过stdin /命令行/函数调用获取图像的文件名或原始图像数据。 将图像输出到具有您选择的名称的文件,或将原始图像文件数据输出到stdout或仅显示图像。 可以使用任何常见的无损图像文件格式。 可以使用图形和图像库。 到处都有一些不正确的像素(由于有损或其他原因)并不重要。如果我无法从视觉上分辨出任何错误,那么可能就可以了。 以字节为单位的最短代码获胜。Tiebreaker是票数最高的职位。

2
XKCD:键盘混搭异常
另一个XKCD启发的比赛。这是基于Keyboard Mash的。 给定一个输入字符串,假定大多数字符已在标准US QWERTY键盘的单行上键入,请识别出异常字符。输入字符串可以包含移位的击键,但它们不包含回车键(Enter),受CTRL / ALT影响的字符,空格,制表符和退格键(因为这样做很愚蠢)。数字键盘将不被视为此挑战的键盘一部分。 挑战在于输出与单个字符串中大多数单个字符不在同一键盘行上的字符。输出应仅包含每个异常字符一次,并且不包含其他字符。 如果两行或更多行中的异常字符数相等,则按以下顺序确定抢七局: 最短的唯一列表 最上一行 输入值 通过STDIN,ARGV或函数参数的字符串 输出量 STDOUT的字符串或函数返回。每个异常字符应该只出现一次,但是不需要排序。 例子 输入: FJAFJKLDSKF7KFDJ 输出: 7 输入: ASDF11111 输出: ASDF 输入: lkjrhsDdftkjhrksRjd 输出: rtR 输入: } * 3%&2098 @ $ 2k234#@ $ M 输出: } 返回最上面的行列表 输入: ASD!@#Vcx 输出:!@# 返回的最短唯一列表 输入: ASdf1233qwER 输出: 123 返回的最短最短列表 输入: 12334QWTTSDFDSXVVBBX …
16 code-golf 

8
打印出最小的完美平方平方
平方正方形是仅使用其他正方形平铺正方形的过程。如果此平铺仅使用不同大小的正方形,则认为它是完美的。在尽可能小的完美方方是一个112x112使用21个不同的正方形瓷砖广场。 我在下面创建了这个正方形的ascii艺术版本: ################################################################################################################ # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## …

2
火柴方程
在此挑战中,您的任务是像这样分析给定的“火柴方程”。 ...并通过重新排列匹配项来找出是否可以将其转换为有效方程。如果这样,您将输出最少的移动次数以及由此产生的方程式。 输入值 输入是一个字符串,可以从STDIN读取,可以作为函数参数,甚至可以存储在文件中。它是代表火柴棍排列的方程式,可以使用以下EBNF进行描述: input = term, "=", term ; term = number | (term, ("+" | "-"), term) ; number = "0" | (numeralExceptZero , {numeral}) ; numeralExceptZero = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; numeral = …
16 code-golf 

7
骑士留在棋s上的概率是多少?
给定棋盘的大小和骑士的初始位置,计算出k骑士移动后进入棋盘内部的可能性。 注意: 骑士以相等的概率进行所有8个可能的动作。 骑士一旦离开棋盘,便无法再回到里面。 输入值 输入以逗号分隔,形式为: l,k,x,y 其中l国际象棋棋盘的长与宽k是,骑士将要移动的次数,是骑士x初始位置的x位置,以及y的y位置。请注意,这0,0是板的l-1,l-1左下角,也是板的右上角。 算法: 从骑士的初始坐标开始。对该位置进行所有可能的移动,并将这些移动与其概率相乘,对于每个移动以递归方式调用该函数,请继续执行此过程,直到满足终止条件为止。终止条件是骑士在国际象棋棋盘外面,在这种情况下返回0,或者在完成所需的移动次数后返回1。 如我们所见,递归的当前状态仅取决于当前坐标和到目前为止完成的步骤数。因此,我们可以以表格形式存储此信息。 信用 这项挑战最初来自根据CC BY-NC-ND 2.5 IN许可发布的crazyforcode.com博客。对其进行了少许修改,使其更具挑战性。
16 code-golf  chess 

30
反铁磁排序
反铁磁性是什么IBM研究人员使用从跳1个TB的磁盘至100兆兆字节盘以相同的量的原子。 在具有反铁磁性的材料中,通常与电子自旋相关的原子或分子的磁矩以规则的方向排列,相邻的自旋(在不同的子晶格上)指向相反的方向。 您的工作是编写一个程序,以绘制反铁磁原子的顺序,如上图所示。尽管您可能有更多对,但您必须至少能够有四对。 每对必须显示如下,尽管它们必须是实际的箭头: 上下 下来 上下 您的输出可以是ascii art或图形输出。 您只能创建一个函数或整个程序,但必须输入并绘制那么多对。仅带单词的示例: 输入1 上下 下来 上下 输入2 向上向下向下 下来下来 向上向下向下 可接受的箭头: ↑ 和 ↓ ⇅ 和 ⇵ /|\ 和 \|/ 易于阅读,请以X字节的语言格式填写答案。最少的字节数获胜!

19
将给定数量的字节格式化为可读格式
挑战与起源 在Stack Overflow上,一个流行的问题是:如何在Java中将字节大小转换为人类可读的格式?投票最多的答案有一个很好的方法可以做到这一点,但这是代码高尔夫,我们可以做得更好,不是吗? 您面临的挑战是编写一种方法或程序,该方法或程序可以将给定字节数转换为正确的人类可读格式,并使用您的语言将结果打印为标准格式。* *请参阅规则以进行进一步说明! 输入值 输入将始终为正数字节,最大(2 ^ 31)-1。 输出量 您可以选择是否使用国际单位制或二进制表示法作为输出(SI表示法可能为您节省一些字节)。 SI: B, kB, MB, GB Binary: B, KiB, MiB, GiB 注意:由于输入范围的限制,无法使用高于GB或GiB的单位。 输出示例 国际单位制: Input Output 0 0.0 B 999 999.0 B 1000 1.0 kB 1023 1.0 kB 1024 1.0 kB 1601 1.6 kB 160581 160.6 kB 4066888 4.1 MB …
16 code-golf 

10
取消图形
介绍 在此挑战中,将为您提供带有自环的有向图,而您的任务是将其转换为无自环的无向图。 输入值 您的输入是一个有向图,其顶点设置{0, 1, ..., n-1}为某个自然数n ≥ 0(或者{1, 2, ..., n}如果您使用基于1的索引)。该图以length- nlist的形式给出,L其中L[i]是顶点的邻居的列表i。例如,列表[[0,1],[0],[1,0,3],[]]代表图形 .-. | v '-0<--2-->3 ^ | | | v | 1<--' 请注意,邻居列表不一定是有序的,但是可以保证它们没有重复。 输出量 您的输出是另一张与输入格式相同的图,可从图获得,如下所示。 删除所有自循环。 对于每个剩余边u -> v,v -> u如果还没有反转边,则添加它。 与输入一样,输出图的邻居列表可能是无序的,但它们不能包含重复项。对于上面的图,正确的输出将是[[1,2],[0,2],[0,1,3],[2]],代表图 0<->2<->3 ^ ^ | | v | 1<--' 规则 您可以在图形中使用基于0或基于1的索引。功能和完整程序都可以接受。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 这些测试用例使用基于0的索引。在基于1的情况下递增每个数字。这些邻居列表按升序排序,但不是必需的。 [] -> [] [[0]] …

6
每日ASCII艺术#3-中国神社
在今天的AAOD中,我们将建造一座高度不同的中国神社。 考虑以下示例中的高度(N)1至6 N = 1: . | . ]#[ . \_______/ . ]###[ . \__]#.-.#[__/ |___| |___| |___|_|___| ####/_\#### |___| /_____\ N = 2: . | . ]#[ . \_______/ . ]###[ . \___________/ . ]#####[ . \___]#.---.#[___/ |__|_| |_|__| |__|_|___|_|__| #####/___\##### |_____| /_______\ N = 3: . | . …

4
建立ASCII斐波那契时钟
有人使用斐波那契数字建立了一个非常漂亮的时钟,它看起来很不错,但是却无法使用。就是我们喜欢的方式!让我们重新创建它。 时钟由与前五个斐波那契数相对应的5个部分组成,从1(即1、1、2、3、5)开始: ccbeeeee ccaeeeee dddeeeee dddeeeee dddeeeee 时钟能够以5分钟为增量显示12小时时间。这是这样的。考虑时间7:20。可以将小时7分解为给定的斐波那契数 7 = 2 + 5 还有5分钟的4个单元。4可以分解为 4 = 2 + 1 + 1 现在,小时显示为红色,分钟显示为绿色,如果小时和分钟都使用数字,则显示为蓝色。如果根本不使用数字,它将保持白色。因此,上面将显示为: BBGRRRRR BBGRRRRR WWWRRRRR WWWRRRRR WWWRRRRR 但是,等等,还有更多。上述分解并不是唯一的可能性。一个人也可以写7 = 3 + 2 + 1 + 1和4 = 3 + 1,这将给 GGRWWWWW GGBWWWWW GGBWWWWW GGRWWWWW BBBWWWWW or BBBWWWWW BBBWWWWW BBBWWWWW BBBWWWWW …

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.