编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

5
采访:前九
采访:前九 这是受编程面试问题启发的一系列挑战中的第一个。 您走进潜在的未来老板所在的办公室。他说:“进来坐下。” 您紧张地坐下,确保您的活泼而专业的服装没有皱纹。他向您询问有关您的学历,以前的工作经验等许多问题。您通常会诚实地回答它们,并在此处和此处添加一些修饰以使自己听起来更好。他俯身,开始再次讲话。 “您听说过打高尔夫球吗?” 为什么,是的,您喜欢打高尔夫球,并且经常在业余时间打高尔夫球。“太好了。面试的最后一部分是技术考试。您将被要求编写代码来解决一系列问题……”他递给您一张纸。您可以快速浏览一下。十分简单。现在,他为什么要问打高尔夫球的代码? “将根据您对这些问题的解决方案的总大小来给您打分。如果您的得分比所有其他候选人都低,那么这是您的工作。” 哦。“像高尔夫一样,有18个问题,分为两个问题,每组9个。请随意使用您喜欢的任何语言来解决它们;我们为您所听到的每种语言提供了编译器和解释器,当然您还可以使用其中的几种语言“ t。祝你好运!” 任务 任务1:乘法表 给定一个数字n作为输入,输出范围为的正整数的乘法表[1, n]。n将在范围内[1, 12]。所有数字应在表格中左对齐。使用该字符x的左上角。 例子: n=4 x 1 2 3 4 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16 n=10 x 1 2 3 4 5 6 7 …

2
输入vim中的绿鸡蛋和火腿
苏斯博士撰写的《绿鸡蛋和火腿》一书以整个故事中只有50个不同的单词而闻名。 您的任务是创建一个击键序列,当在vim文本编辑器中将其应用于空文件时,将以所有默认设置从常规模式开始,生成“绿色鸡蛋和火腿”的整个文本。击键操作过程中不得加载任何其他文件-所有文本都必须在编辑器内部生成。 您的最终缓冲区必须与该文件完全一样,尽管它可以保留在最终处于的任何模式下(您不必具有最终结构<Esc>即可将其返回到正常模式)。 像<C-o>或使用Shift键来键入大写字母的和弦键击作为单个键击。 达到此目标的最少击键顺序将获胜。

7
Y2K…在2019?
今天是2019年8月10日,但是您的任务仍然涉及Y2K。奇怪吧? 创建一个可打印的程序,并在其后附加两位数字。首次运行时,应在其输出后附加00(其源代码,因为这是quine变体)。运行该输出时,没有两位数字的原始程序应该输出原始程序,但要附加01。运行该输出以获取附加02的OG程序,然后运行以03附加该程序。此链应持续到99。该程序应输出BREAKING NEWS: WORLD ENDS。 如果您的程序是Y2Kparanoia: yes: 它应该输出 Y2Kparanoia: yes00 该输出应打印 Y2Kparanoia: yes01 该输出应打印 Y2K paranoia: yes02 重复执行直到步骤100:此程序输出指定的世界末日新闻 这是代码高尔夫,因此可以遵循这些步骤进行打印的最短程序胜出。
18 code-golf  quine 

19
编写最短的程序来计算二叉树的高度
二叉树的高度是从根节点到最远离根节点的子节点的距离。 下面是一个示例: 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 二叉树的高度:4 二叉树的定义 树是一个对象,其中包含一个带符号的整数值以及另外两个树或指向它们的指针。 二叉树结构的结构如下所示: typedef struct tree { struct tree * l; struct tree * r; int v; …

30
数字减少而字母增加
随机受数字启发而字母减少 给定的混合字母和整数(例如,列表['a', 2, 3, 'b'])增加由字母表中的(包装在一个位置的字母z到a)和减少由1的数字对于上面的例子中,输出应该是['b', 1, 2, 'c']。 输入可以是混合类型列表,定界字符串,字符串列表等。 z包装到a,但1转到0,然后0转到-1,等等。 输入将永远是[a-z]和整数。[A-Z]如果更方便,则可以选择大写字母作为输入。 输入保证为非空。 输入内容只能包含数字或字母。 例子: Input Output ['a', 2, 3, 'b'] ['b', 1, 2, 'c'] ['a', 'b', 'z'] ['b', 'c', 'a'] [-1, 0, 257, 'x'] [-2, -1, 256, 'y'] [0, 3, 1, 20382876] [-1, 2, 0, 20382875] 规则和说明 输入和输出可以通过任何方便的方法给出。 您可以将结果打印到STDOUT或将其作为函数结果返回。 输出不必与输入具有相同的格式(例如,您可以将输入作为字符串,将输出作为列表)。 …

1
完成网格填充曲折
网格填充曲折是一条封闭的路径,它至少访问一次N×NN×NN \times N正方形网格的每个像元,从未与相邻像元之间的任何边缘交叉超过一次,也从未与自身相交。例如: 填充后,网格的每个单元格都可以由以下8个图块之一表示: 以这种方式编号,以上蜿蜒的图块可以通过以下矩阵表示: 5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3 给定一组不完整的图块,您的任务是完成网格填充曲折。例如,不完整的曲折: ...可以使用0s表示缺少的图块: 5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0 ...可以这样完成: ...即: …

12
组成填空
假设我们在字符串上有一组特定的函数。这些函数有点像填入空格或madlib,不同之处在于它们仅接受一个输入并使用该输入来填入所有空白。例如,我们可能有一个看起来像 I went to the ____ store and bought ____ today. 如果我们将此功能应用于字符串cheese,结果将是: I went to the cheese store and bought cheese today. 我们可以将这些函数表示为字符串的非空列表,其中的空格只是字符串之间的空白。例如,我们上面的函数将是: ["I went to the ", " store and bought ", " today."] 在这种表示形式下,此类每种功能只有一种表示形式,而每种表示形式仅一种功能。 一件真正整洁的事情是,这些功能的集合在组合时是封闭的。也就是说,我们两个功能的组合始终是这些功能中的另一个。例如,如果我用 ["blue ", ""] (添加blue到输入的函数)我们得到函数: ["I went to the blue ", " store and …

7
3x3x3立方体的表面作为图形
您的任务是生成具有54个顶点的图形,每个顶点对应于Rubik立方体上的一个构面。如果相应的小平面共享一个边,则两个顶点之间会有一条边。 规则 您可以选择输出邻接表,邻接矩阵,边列表或任何合理的格式来表示算法中的图形。(在大多数情况下,人类可读的视觉图通常在算法中不是合理的格式。) 您可以使每个顶点彼此相邻,也可以不使它们彼此相邻。 您可以为每个边沿包括两个方向(对于自循环计数为一或两次),也可以为每个边沿精确地输出一次,但不能混合使用。 您可以根据需要对顶点重新编号,跳过一些数字,甚至对顶点使用非数字标签。如果编号不明显,您还应该发布编号,以便其他人可以更轻松地检查您的答案。 这是代码高尔夫球。以字节为单位的最短代码获胜。 输出示例 这是示例中使用的顶点编号: 0 1 2 3 4 5 6 7 8 9 10 11 18 19 20 27 28 29 36 37 38 12 13 14 21 22 23 30 31 32 39 40 41 15 16 17 24 25 26 33 34 …

22
以指数级增长!
挑战 如果有一个基1&lt;b&lt;101&lt;b&lt;101 < b < 10和索引,输出术语,定义如下:t≥1t≥1t \ge 1xtxtx_t x1=1110x1=1110x_1 = 11_{10} xi+1xi+1x_{i+1}是通过将转换为以为底,然后以为底重新解释其数字而获得的xixix_ibbb101010 输出应以为底101010 第5项第5项的基本步骤是: x1=1110x1=1110x_1 = 11_{10}。 1110=2151110=21511_{10} = 21_{5}所以x2=2110x2=2110x_2 = 21_{10}。 2110=4152110=41521_{10} = 41_{5}所以x3=4110x3=4110x_3 = 41_{10}。 4110=13154110=131541_{10} = 131_{5}所以x4=13110x4=13110x_4 = 131_{10}。 13110=1011513110=10115131_{10} = 1011_{5}所以x5=101110x5=101110x_5 = 1011_{10}。 我们输出字符串"1011"或整数1011。 测试用例 注意:这些是被索引的 base 2, term 5 --&gt; 1100100111110011010011100010101000011000101001000100011011011010001111011100010000001000010011100011 base 9, term 70 …
18 code-golf  number 

10
进/出调试器行为不同的程序
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 8个月前关闭。 挑战在于编写确定性程序(任何语言/操作系统),该程序不带参数或其他输入,并且在调试器中的行为与未调试时的行为不同。 例如,程序在调试时可能会输出某些内容,而在调试时可能不会输出任何内容。或在每种情况下输出不同的内容。否则可能在调试时崩溃,但在未调试时不会崩溃。或相反亦然。 注意事项和说明: 时间差异不计算在内。 允许翻译语言。 为了强调确定性:在调试环境内外,行为都必须是完全可复制的。 调试器本身的存在应该是两种情况之间的唯一区别。 告诉调试器添加输入(stdin或argv ENV或其他)是作弊的,调试器应按原样运行程序。 禁止在调试和非调试运行之间更改环境(例如,在虚拟机或其他操作系统中运行,或更改操作系统设置,例如内存限制)。 最短的代码胜出。我可能会颁发赏金,以揭示一些有关调试器如何工作的有趣信息。
18 code-golf 

15
除数富数和穷数
介绍 在奇异的整数世界中,除数就像资产,他们习惯称除数比其反转多的数字为“有钱”,而称除数比其反转数少的数字为“差”。 例如,号码240124012401有五个除数:1,7,49,343,24011,7,49,343,24011,7,49,343,2401,而其逆转,104210421042,只有四个:1,2,521,10421,2,521,10421,2,521,1042。 因此,240124012401被称为富人数量,而104210421042一差数。 给定此定义,我们可以创建以下两个整数,分别包含有数字和无数字: (here we list the first 25 elements of the sequences) Index | Poor | Rich -------|------|------- 1 | 19 | 10 2 | 21 | 12 3 | 23 | 14 4 | 25 | 16 5 | 27 | 18 6 | 29 | …

22
ssTTsSTtRrriinInnnnNNNIiinngg
挑战 对于字符串的每个字符(最后一个字符除外),请执行以下操作: 输出当前字符。 接下来,从以下列表中随机输出1-5(含)之间的随机次数: 当前角色 字符串的下一个字符 您当前使用的字符的开关盒版本 字符串的下一个字符的开关盒版本。 测试用例 String -&gt; SSSTSStrTrIiinIIngn , . , . , . Hello world! -&gt; ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -&gt; PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf 笔记 如果字符是字母(AZ和az)的一部分,则仅需要应用字符的切换大小写版本。 …

17
我的号码中有多少个连续的降序号?
2019年已经到来,也许每个人都注意到了这个数字的特殊性:实际上它是由两个子数字(20和19)组成的,代表两个连续的降序数字。 挑战 给定一个数字x,返回可以通过采用的子数字形成的连续的,递减数字的最大序列的长度x。 注意事项: 子数字不能包含前导零(例如1009,不能拆分为10,09) 连续和降序表示该序列中的数字必须等于先前的数字-1,或者ñ我+ 1= n一世− 1ni+1=ni−1n_{i+1} = n_{i}-1(例如52,不能分割为,5,2因为5并且2不连续,2 ≠ 5 - 1) 顺序必须使用完整的电话号码,如获得7321你不能放弃7,并获得序列3,2,1 只能从数来获得的一个序列,例如3211098不能被分成两个序列3,2,1和10,9,8 输入值 整数(&gt;= 0):可以是数字,字符串或数字列表 输出量 给定最大数目的递减子数字的单个整数(请注意,此数字的下限为1,即一个数字由其自身以长度为1的降序组成) 例子 : 2019 --&gt; 20,19 --&gt; output : 2 201200199198 --&gt; 201,200,199,198 --&gt; output : 4 3246 --&gt; 3246 --&gt; output : 1 87654 --&gt; 8,7,6,5,4 --&gt; output …
18 code-golf 

9
将网格划分为三角形
目标 挑战的目标是产生一个函数,n该函数计算将n X 1网格划分为三角形的方式的数量,其中三角形的所有顶点均位于网格点上。 例 例如,有14种方法来划分2 x 1网格,因此f(2) = 14通过以下分区 ,其中分区分别具有2、2、2、2、4和2个不同的方向。 计分 这是代码高尔夫球,因此最短的代码获胜。

8
这是四边形周期性的吗?
在数学中,循环四边形是一个顶点都位于同一圆上的四边形。换句话说,每个顶点都位于其他三个顶点的外接圆上。有关更多信息,请参见MathWorld文章。 例子 这些四边形是循环的: 该梯形不是周期性的。 (图片来自维基百科) 目的 给定形成凸四边形的四个顶点的逆时针坐标,确定四边形是否为循环的。 坐标将是整数(但是,请注意,圆心坐标和外接半径不一定是整数。)如上一段所隐含,没有三个点是共线的,也没有两个重合的点。 输入输出 您可以使用任何合理的格式进行输入。特别是[[x1,x2,x3,x4],[y1,y2,y3,y4]],[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]和复数无一不精。 使用true和false的任何不同一致值进行输出。 测试用例 真正: [0,0], [314,0], [314,1], [0,1] [-5,5], [5,-5], [1337,42], [42,1337] [104, -233], [109, -232], [112, -231], [123, -224] 假: [0,0], [314,0], [314,100], [0,99] [31,41],[59,26],[53,58],[0,314]

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.