Questions tagged «code-golf»

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

16
解码Baby-talk!
当婴儿张开嘴时,他们不仅在吐胡言乱语。他们实际上是在使用高度先进的,可证明成人身份的密码... 婴儿说话密码 婴儿说话时,看起来像是gogooa gagooook aagaaoooy 每个空格分隔的部分代表一个字符(因此,上面的示例代表3个字符)。 要解密一个部分,我们必须计算它包含的As和Os的数量。但是,我们只计算与另一个元音相邻的那些。例如,“ gag”中的A不计算在内,但“ gaog”中的A和O均计算在内。 计算上面的示例如下所示: Section | Num Os | Num As gogooa | 2 | 1 gagooook | 4 | 0 aagaaoooy | 3 | 4 然后,我们使用这些值将输入转换为Polybius正方形上的纯文本。这是英文字母的5x5表示形式,省略了“ J”(请注意,在婴儿交谈中,表中使用0计数规则): 0 1 2 3 4 0 A B C D E 1 F G H I …

8
可视化数组
给定任意深度的数组,请使用+-|每个子数组周围的边框绘制其内容。这些是加号,减号和垂直管道的ASCII字符。 例如,如果数组为[1, 2, 3],则绘制 +-----+ |1 2 3| +-----+ 对于嵌套数组,例如[[1, 2, 3], [4, 5], [6, 7, 8]],绘制 +-----------------+ |+-----+---+-----+| ||1 2 3|4 5|6 7 8|| |+-----+---+-----+| +-----------------+ 对于参差不齐的数组,例如[[[1, 2, 3], [4, 5]], [6, 7, 8]],绘制 +-------------------+ |+-----------+-----+| ||+-----+---+|6 7 8|| |||1 2 3|4 5|| || ||+-----+---+| || |+-----------+-----+| +-------------------+ 请注意,绘制后还有更多空间[6, …

2
排列任意矩形以填充空间
这些矩形可以填充矩形空间吗? 给定一堆矩形,系统会询问您是否可以将它们安排为填充矩形空间。 眼镜 给定一堆任意m x n矩形;0 <= m, n <= 1000,确定是否可以对其进行排列,以使其完全覆盖矩形区域而没有任何孔洞或重叠。矩形不能旋转,每个矩形只能放置一次。 输入项 只要输入给出某种2维尺寸列表,此输入就非常灵活。例如,以下两个都是有效的: 按空格分隔,返回 1 2 1 5 4 5 3 6 尺寸表 [[1, 2], [1, 5], [4, 5], [3, 6]] 输出量 各种true / false值,例如true / false,0/1,T / F,True / False等。如果要使用不太明显的输出方法,请在答案中指定。 例子 测试用例1 输入: 1 1 1 5 2 6 …

13
作弊多项选择测试,第2部分
这是续集这种由挑战阿德南。如果您喜欢这个挑战,那么您也很可能会喜欢另一个挑战。看看这个! 多选题测试包含8个问题,每个问题有4个选择,可能会有答案:BCADBADA。转换为四个不同的数组,如果当前字母是答案,则为true和false,它将看起来像这样 Q#: 1 2 3 4 5 6 7 8 B C A D B A D A A: [0, 0, 1, 0, 0, 1, 0, 1] B: [1, 0, 0, 0, 1, 0, 0, 0] C: [0, 1, 0, 0, 0, 0, 0, 0] D: [0, 0, 0, …

18
画一个坎String的弦
(受此挑战启发。) 假设我们有一个字符串ABBCBA。我们可以说,之间存在上升A和B,为B如下A; 我们可以说B和之间有一个过渡B,没有任何变化;最后我们可以说C和之间有一个落差B。我们可以这样画一个图: A B B C B A Rising: o o Continuing: o Falling: o o 没有标签,并最小化空白: o o o oo 这是输入的预期输出ABBCBA。 您可以使用任何非空白字符替换o输出中的字符。此外,每列之间可以选择有一个额外的空间,如下所示: o o o o o 输入内容将至少包含三个字符。该字符串将完全由大写字母组成,但是您可以改用小写字母。 测试用例 TEST CASE LINE 1 LINE 2 LINE 3 HELLOWORLD o oo o o o o oo TESTCASE oo o …

10
四路交叉口发电机
这是四向交叉的ASCII艺术: | | | | | | | | | | | | | -----+-----+----- | | - - -| |- - - | | -----+-----+----- | | | | | | | | | | | | | (请注意,水平道路的高度为3行,而垂直道路的宽度为5列。这是出于审美原因,因为是矩形字体。) 您的挑战是产生这种ASCII艺术。但是,正如我确定的大家所知道的,并不是每个交叉路口都有在每个方向上行驶的道路。这个特定的路口走了NESW,但是某些路口可能走了,例如NW: | | | | | | | | | …

1
找出Android锁定模式
假设您看到您的朋友在他们的Android手机中输入了他或她的密码。您不记得他们是如何制作图案的,但是您仍然记得图案的外观。作为您关心的朋友,您想知道他们的密码有多安全。您的工作是计算形成特定图案的所有方式。 Android模式如何运作 模式是在3x3的节点网格上绘制的。在一种模式中,无需访问屏幕即可访问一系列节点。他们访问的每个节点都通过一条边连接到前一个节点。要记住两个规则。 您最多只能访问一个节点 边缘可能无法通过未访问的节点 请注意,尽管通常很难执行,因此在实际的android锁组合中并不常见,但可以像Knight一样移动。即,可以从一侧移动到不相邻的拐角处或以另一种方式移动。这是采用此举的两种模式示例: 这是正在执行的动画Gif。 解决模式 典型的模式可能如下所示: 对于这种简单的模式,有两种方法可以绘制两种模式。您可以从两个松散的一端开始,然后穿过突出显示的节点到达另一个节点。尽管对于许多模式而言都是如此,但对于人类通常采用的模式而言,并非对所有模式都如此。 考虑以下模式: 有两种立即可识别的解决方案。从左上方开始的一个: 还有一个从底部中心开始: 但是,因为一旦选择了一条线,就允许它通过一个点,因此从顶部中间开始有一个附加的花样: 这个特定的模式有3个解决方案,但是模式可以有1到4个解决方案之间的任何位置[需要引用]。 以下是每个示例的一些示例: 1。 2。 3。 4。 输入输出 节点可以表示为零到九之间的整数,它们的等效字符串或a到i(或A到I)的字符。每个节点必须具有这些集合之一中的唯一表示。 解决方案将由包含节点表示形式的有序容器表示。节点的顺序必须与传递顺序相同。 模式将由节点对的无序容器表示。每对代表一条开始连接该对中两个点的边。模式表示不是唯一的。 您将通过标准输入方法将模式表示作为输入,并通过标准输出方法输出创建相同模式的所有可能解决方案。 您可以假设每个输入将至少具有一个解决方案,并将连接至少4个节点。 如果您愿意或被语言选择所迫,则可以选择使用有序容器代替无序容器。 测试用例 节点按以下模式排列: 0 1 2 3 4 5 6 7 8 让我们{...}成为一个无序的容器,[...]成为一个有序的容器,然后(...)成为一对。 以下输入和输出应匹配 {(1,4),(3,5),(5,8)} -> {[1,4,3,5,8]} {(1,4),(3,4),(5,4),(8,5)} -> {[1,4,3,5,8]} {(0,4),(4,5),(5,8),(7,8)} -> {[0,4,5,8,7],[7,8,5,4,0]} {(0,2),(2,4),(4,7)} …

21
镜子中的镜子
二维编程语言通常具有镜像命令,例如/和,\以重定向网格上的指令指针: >>>>\ v v <<<</ 在此挑战中,您将获得一个传入方向和一个镜像,并且需要确定传出方向。 规则 传入方向将被指定为字符之一,NESW而镜像将被指定为/或\。您可以按任何顺序收到这些。您必须使用大写字母。 您可以采用任何方便的格式输入,包括两个字符的字符串,在字符之间使用一些分隔符的字符串,列表中的一对字符,甚至一对单例字符串。如果确实使用带分隔符的字符串,则分隔符不能使用任何字符NWSE\/。 输出应为一个字符NESW或单个字符的字符串。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 您只需要处理8种可能的输入,因此没有理由不对所有代码进行测试: N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ --> W W / --> N W \ --> S

30
解码chmod
挑战 给定一个三位数的八进制权限号,输出它授予的权限。 chmod 在UNIX OS上,使用以下chmod命令可以更改文件许可权。使用chmod的方法很少,但是我们今天将重点讨论的是使用八进制权限。 权限编号中的三个数字代表一个不同的人: 第一位代表用户的权限 第二位数字表示该组的权限 最后一位代表他人的权限 接下来,每个数字代表一个权限,如下所示: Key: number | permission 7 | Read Write and Execute 6 | Read and Write 5 | Read and Execute 4 | Read only 3 | Write and Execute 2 | Write only 1 | Execute only 0 | None …

14
自动化OEIS
我们在这里看到了很多挑战,要求从OEIS创建函数来创建序列。尽管这些挑战很有趣,但作为一名程序员,我看到了自动化的机会。 您的挑战是制作一个程序,该程序采用序列的索引(例如A172141)和某个整数n(例如7),并从适当的网页中提取适当的值。 输入输出 如前所述,您的程序应采用序列索引和某个值n作为输入,并输出该序列中的第n个项。您接受序列B文件中的任何索引。如果索引大于B文件中列出的最大索引,则您可能会引发异常或输出您选择的内容(测试用例中没有)。允许使用标准的输入和输出方法。 网络使用限制 除https://oeis.org和http://oeis.org之外,您不应访问任何其他网站。这包括网址缩短器,您自己的个人网站以及此问题本身。如果您想访问其他网站,并且认为允许这样做并非不公平,则可以发表评论,我将进行仲裁。 计分 这是一个代码挑战,因此在其源代码中使用最少字节的程序将获胜。不允许出现标准漏洞。 测试用例 假设您的计算机具有正确的Internet连接并且OEIS服务器已启动并且正在运行,则以下输入和输出应该对应。 A172141, 7 -> 980 A173429, 4 -> 276 A190394, 6 -> 16 A002911, 11 -> 960 A052170, 3 -> 24 A060296, 8 -> 3 A178732, 5 -> 27 A000001, 1 -> 1 A000796, 314 -> 3 A001622, 162 -> 8 …

21
保持非零及其邻居
摘自Stack Overflow的这个问题。也感谢@miles和@Dada为解决某些极端情况提供建议的测试输入。 挑战 给定一个整数值数组,请删除所有不包含某个非零值的零。 等效地,如果条目为非零或为立即接近于非零值的零,则应保留该条目。 保留的条目应在输出中保持其在输入中的顺序。 例 给定 [2 0 4 -3 0 0 0 3 0 0 2 0 0] 应删除的值用标记x: [2 0 4 -3 0 x 0 3 0 0 2 0 x] 所以输出应该是 [2 0 4 -3 0 0 3 0 0 2 0] 规则 输入数组可能为空(然后输出也应该为空)。 输入和输出格式像往常一样灵活:数组,列表,字符串或任何合理的格式。 …

30
字母转数字和数字转字母
挑战 在此挑战中,您必须将数字作为输入并输出相应的字母,反之亦然。(1 <=> A,2 <=> B)等 1 -> A 2 -> B ... 26 -> Z A -> 1 B -> 2 ... Z -> 26 规则 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 输入将仅由来自任一大写字母的A到Z或从整数1到26包容。 允许尾随空格(空格和换行符)。

22
四分位数均值
任务 给定(以任何方式)排序的浮点数据集,返回(以任何方式并在正确值的1‰之内)四分位数均值。 一种可能的算法 丢弃数据点的最低和最高的四分之一。 计算剩余数据点的平均值(总和除以计数)。 注意:如果数据集大小不能一分为四,则必须权衡子集共享的数据点。请参阅下面的示例评估2。 评估示例1 给定{1,3,4,5,6,6,7,7,8,8,9,38} 数据计数是12,所以我们除去最低和最高3数据点:{ 1,3,4, 5,6,6,7,7,8,8,9,38 } 其余6个数据点的平均值:(5 + 6 + 6 + 7 + 7 + 8)/ 6 = 6.5 评估示例2 给定{1、3、5、7、9、11、13、15、17} 计数为9,因此每个季度都有2¼个数据点:{ 1,2,(0.25×5),(0.75×5),7,9,11 ,(0.75×13),(0.25×13),15,17 } 其余4.5个数据点的平均值:(0.75×5 + 7 + 9 + 11 + 0.75×13)/ 4.5 = 9

29
子串总和集
介绍 让我们来观察此阵:[3, 2, 4, 1, 1, 5, 1, 2]。 每个元素显示必须加总的子字符串的长度。让我们看一下上述数组的第一个元素: [3, 2, 4, 1, 1, 5, 1, 2] ^ 第一个索引处的元素是3,因此我们现在取一个长度为3的子字符串,其索引与起始位置相同: [3, 2, 4] 求和时,结果为9,因此子字符串总和集合的第一个元素为9。 我们对数组中的所有元素执行此操作: 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, 1, …

29
订购清单
摘要 给定一个整数列表,返回每个整数在排序时以其结尾的索引。 例如,如果列表为[0,8,-1,5,8],则应返回[1,3,0,2,4]。请注意,两个8保持彼此相对的顺序(排序是稳定的)。 换句话说,对于列表中的每个元素,返回列表中的元素数量:小于所选元素OR(等于元素AND出现在所选元素之前) 索引必须以0(而不是1)开头。编辑:给定较大的回推,我将允许基于1的索引。 测试用例: 0 -> 0 23 -> 0 2,3 -> 0,1 3,2 -> 1,0 2,2 -> 0,1 8,10,4,-1,-1,8 -> 3,5,2,0,1,4 0,1,2,3,4,5,6,7 -> 0,1,2,3,4,5,6,7 7,6,5,4,3,2,1,0 -> 7,6,5,4,3,2,1,0 4,4,0,1,1,2,0,1 -> 6,7,0,2,3,5,1,4 1,1,1,1,1,1,1,1 -> 0,1,2,3,4,5,6,7 1,1,1,1,1,1,1,0 -> 1,2,3,4,5,6,7,0

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.