编程拼图和代码高尔夫

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

18
将Salesforce 15个字符的ID转换为18个字符
在Salesforce CRM中,每个对象都有15个字符的字母数字ID,区分大小写。如果有人好奇,实际上它是62的基数。但是,用于数据迁移和集成的工具可能支持也可能不支持区分大小写。为了克服这个问题,可以将ID安全地转换为18个字符的不区分大小写的字母数字ID。在该过程中,将3个字符的字母数字校验和添加到ID。转换算法为: 范例: a0RE000000IJmcN 将ID分成三个5个字符的块。 a0RE0 00000 IJmcN 反转每个块。 0ER0a 00000 NcmJI 1如果每个字符都用大写字母替换,0否则用大写字母替换。 01100 00000 10011 对于每个5位二进制数i,在位置获取字符i在大写字母和数字0-5(ABCDEFGHIJKLMNOPQRSTUVWXYZ012345)串联的。 00000 -> A, 00001 -> B, 00010 -> C, ..., 11010 -> Z, 11011 -> 0, ..., 11111 -> 5` 屈服: M A T 将这些字符(校验和)附加到原始ID。 输出量: a0RE000000IJmcNMAT 编写以15个字符的字母数字(ASCII)字符串作为输入并返回18个字符的ID的程序或函数。 输入验证不在此问题的范围内。程序可能会返回任何值,或者由于无效输入而崩溃。 请不要使用使该挑战变得微不足道的Salesforce专有语言的功能(例如,公式CASESAFEID(),转换Id为String在APEX&c中 Formula)。 测试用例 a01M00000062mPg …
20 code-golf  string 

11
制作数字列表转换器
当您想将一个数字列表(向量,数组...)从一个程序复制粘贴到另一个程序时,您是否讨厌它,但是您使用数字的格式与您所需要的格式不匹配? 例如,在MATLAB中,您可能会有一个用空格分隔的列表,如下所示: [1 2 3 4 5] (you can also have it comma separated, but that's not the point) 在Python中,您需要插入逗号以使该列表成为有效输入,因此您必须将其转换为 [1, 2, 3, 4, 5] 使它工作。在C ++中,您可能需要类似以下内容: {16,2,77,29} 等等。 为了简化每个人的生活,让我们创建一个列表转换器,该转换器接受任何格式的列表*,然后输出另一种指定格式的列表。 有效括号为: [list] {list} (list) <list> list (no surrounding brackets) 有效的分隔符为: a,b,c a;b;c a b c a, b, c <-- Several …

10
支架平衡
您将得到一个(可能为空)字符串,其中包含方括号([{()}])和其他任何字符(A- Z,a- z,0- 9,标点符号)。您需要检查其是否遵循以下规则: 非方括号字符将被忽略。 每个开放式括号[{(都有一个封闭式括号)}]。所以[](是不允许的。 支架正确嵌套。[(])不允许。 弯括号中不能包含方括号。简单括号内不能包含大括号或方括号。因此[({})],[{[]}]并且({})是不允许的。括号可以与类似的括号嵌套,因此[[{((()))}{{(())}}]()]{()}是允许的。 根据您的选择,输出是单个真实/错误值。 最短的代码胜出。 测试用例 b[[a{(/)}(())+={{}-}],] ->有效 ([h][e][l][l][o]) ->无效 [///[{(\/(arg()))}1{{((-)-2)}}]()]{()} ->有效 hi ->有效

1
低分辨率像素艺术的死亡(或画出死亡)
这是不规则的网络漫画!主题任务。* 死亡是一个相当广泛的组织,尽管Head Death毫不费力地将其员工区分开来,但与该组织相关的某些其他实体却难以追踪所有人。 因此,在给定各种死亡之一的标题的情况下,您的任务是生成该死亡的相应32x32像素图像。 此外,由于“头颅死亡”相当官僚主义(有点小气),因此最短的程序(在考虑了一些奖金之后)将成为正式使用的程序。 输入必须不区分大小写。此外,前缀Death Of,Death By和The Death Of应该被视为等效。 输出图像可以保存到文件(任何无损位图图像格式)或显示在屏幕上。 以下是要使用的精确 RGB值: White 255 255 255 Black 0 0 0 Dark Gray 125 125 125 Bone Gray 170 170 170 Purple 60 0 140 Brown 120 40 0 Blue 0 80 200 Green 0 100 0 Neon Green 100 …

2
90°自转程序
介绍 编写一个完整的程序,该程序将ASCII字符的矩形块顺时针旋转90度。当程序本身顺时针旋转90度时,它将ASCII字符块逆时针旋转90。 规则 许多人不使用旋转或转置矩阵的内置函数。例如,在MATLAB / Octave中rot90,'不允许使用转置运算符。 您必须编写一个使用STDIN和STDOUT或最接近的等效语言的完整程序。 您的程序必须为矩形,并假定输入也是矩形。 输入和输出是用换行符分隔的字符串,并且没有尾随的换行符。 当将其源代码作为输入运行时,您的程序必须将自身顺时针旋转90度。输出必须是使用相同语言的第二个程序,该程序将其输入逆时针旋转90度。当旋转的程序被提供其源代码作为输入时,它应输出原始程序的源代码。 注意:这两个程序都必须能用于任何输入,而不仅仅是它们自己的源代码,因此不允许一个字符的quine。 例 说下面是一个有效的程序,它以一种假设的语言ExampleLang将输入旋转90度。 ^f a2% 3 lk (^_^& v D8 $4 / 当以自身作为输入运行时,它将输出另一个有效程序,该程序将其输入逆时针旋转: D l^ 8 kf $ (a 4 ^2 _% ^ /v&3 当第二个程序作为输入提供给自己时,输出原始程序。请注意,空白行应有四个空格,倒数第二行上有一个尾随空格,不能在markdown中呈现。澄清: $ examplelang program < program > rotProg $ examplelang rotProg < rotProg > program1 $ …

9
斐波那契日快乐!
背景 今天(或昨天)是(或曾经是)11/23或斐波那契日!有什么比做斐波那契蛋糕更好的庆祝方式了? 例子 3 ii i_i_ii_i_i 8 ii ii ii ii ii ii ii ii i ii i i ii i i ii i i ii i i ii i i i ii i i i i ii i i i i ii i i i i i ii i …

12
连接n时间!
https://en.wikipedia.org/wiki/Connect_Four 有人记得2人游戏连接4个吗?对于那些不喜欢的人来说,那是一块6x7的板,它垂直于表面。连接4的目标是连接4!如果连接是水平的,对角的或垂直的,则将其计算在内。您可以通过以下方式将棋子放置在板上:在棋子的顶部插入棋子,使其落在该棋子的底部。我们的规则更改了连接4中的3件事。 变更#1获胜定义为得分最高的玩家。您可以通过像规则中那样连接4来获得积分-稍后再介绍。 变更#2您每轮有3个玩家。 变更#3电路板尺寸为9x9。 得分: 分数基于您连续获得的分数。如果您有一个连续的4组,您将获得1分。如果您在连续5组中获得5分,则在3行中获得6分,依此类推。 例子: 注意o和x分别用#和代替~,以获得更好的对比 空棋盘示例:(所有示例均为2人标准尺寸棋盘) a b c d e f g 6 | | | | | | | | 5 | | | | | | | | 4 | | | | | | | | 3 | | | | | …

6
字符串到ASCII艺术文本
任务 您将编写一些从此网站上看到的ASCII Art Text 来生成ASCII art! 规则 输入将仅是字母文本和空格,并将输入为一行。它也不区分大小写。 如果输出文本长于终端宽度,则无需修复。只要终端窗口可以无限拉伸是正确的,您就可以了。 除标准漏洞外,唯一的其他规则是您不得使用内置插件-尽管如果您的语言具有内置插件(这将是惊人的),但如果您将其作为旁注包括在内答案,从采用代码解决方案的解决方案中获得15%的奖励! 例: 输入: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 输出: _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _______ _____ _______ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ …

17
查找所有可能的基本表示形式的总和
这项挑战的目的是编写一个程序,以转换输入字符串(假定该字符串仅包含字母和数字),并尽可能多地使用2到36之间的基数,并找到结果的基数10。 输入字符串将被转换为所有在其数量会根据用于碱基高达36标准字母表来定义的碱基:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ。例如,输入2T仅在以30为基数的有效值。该程序会将2T从30到36的基数转换为十进制并求和。 您可以假定输入字符串仅包含字母和数字。您的程序可以使用大写或小写;它可以但不需要同时支持两者。 测试用例 输入样例: 2T 可能基准图 Base Value 30 89 31 91 32 93 33 95 34 97 35 99 36 101 输出:665 输入样例: 1012 可能基准的图表: Base Value 3 32 4 70 5 132 6 224 7 352 8 522 9 740 10 1012 11 1344 12 1742 13 …

5
密码锁柜台
场景是: 当Brian突然需要他的吸入器时,Peter和他的伙伴Brian在健身房。Brian倒在地板上之前设法告诉Peter密码到他的密码锁。 当彼得到达Brian的储物柜并看到指示器所指的那一刻,Stewie伏击了他,并在他的脸上喷了满罐胡椒粉,使Peter蒙蔽了双眼。 彼得现在必须尝试打开锁而不要看它。他开始将表盘向右旋转,并在传递数字时对数字进行计数。然后,他以正确的数字开始将表盘向左旋转,仍在计数,最后将其向右旋转直到锁打开。 挑战: 编写一个函数/程序,它接受两个输入,即来自Brian的组合和指示器位置。输出彼得必须数的数字。 规则: 组合和指标位置必须是单独的参数。 输入可以来自命令提示符,也可以作为函数参数。 输出必须打印到屏幕上/否则显示(不记录到文件中) 假定起始位置与第一个数字不同,并且组合中的所有三个数字都是唯一的 下图所示为锁,可能的数字为0-39。 说明: 要打开下面的锁,您需要按照以下说明进行操作: 您必须知道您的代码。假设现在是(38,16,22)。 将拨盘向右旋转3次(通过起始数字3次),然后在第一个数字(38)与指示器对准时停止 将拨盘向左旋转1圈,传递第一个数字,并在第二个数字(16)与指示器对齐时停止。 将拨盘向右旋转,并在第三个数字(22)与指示器对准时停止 拉下锁 例: Input 38 16 22 33 Output 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 …
20 code-golf  number 

2
晶体管组合
电子游戏晶体管具有非常有趣的能力系统。您收集了16个“功能”,可以在16个不同的插槽中使用。有趣的是,有3种插槽类型,每个函数根据您在哪个插槽中使用其行为有所不同: 有4个被动插槽。 有4个活动插槽。 每个活动插槽都有2个升级插槽。 我们想弄清楚给我们带来了多少种不同的技能。 但是,某些组合是等效的。特别是,在这些插槽组的每一个中,功能的特定位置无关紧要。另一方面,升级插槽中功能的效果确实取决于父级活动插槽中使用的特定功能。 因此,使用十六进制数字表示功能,以下组合都是等效的: Passive Slots: 0 1 2 3 Active Slots: 4 5 6 7 Upgrade Slots: 8 9 A B C D E F Passive Slots: 2 0 1 3 # Permutation of passive slots. Active Slots: 4 5 6 7 Upgrade Slots: 8 9 …

13
请没有人!
我绝对讨厌数字1。因此,我需要您的帮助才能将数字转换为它们的“适当形式”。 正确形式的数字永远不会1连续包含两个。101可以,但是110很丑。 要进行转换,只需跳过所有不正确的数字并正常计数。例如... 1 -> 1 2 -> 2 ... 10 -> 10 11 -> 12 12 -> 13 ... 108 -> 109 109 -> 120 110 -> 121 111 -> 122 等等。 您的程序应采用整数并以适当的形式输出。这是代码高尔夫球,因此以字节为单位的最短代码获胜。
20 code-golf  number 

1
telgif:反figlet
figlet是一种实用程序,可将纯文本转换为可在横幅等中使用的ascii-art表示形式。例如: $ figlet "CODE GOLF" ____ ___ ____ _____ ____ ___ _ _____ / ___/ _ \| _ \| ____| / ___|/ _ \| | | ___| | | | | | | | | | _| | | _| | | | | | |_ | |__| |_| | …

1
生成图片迷宫
挑战 编写接受“图像”并输出由该图像形成的图片迷宫的程序/功能。 输入值 您的程序应接受两个参数: 我,形成迷宫的形象 S,一个布尔值,指定是否显示迷宫的解 我的格式如下: ....... .#####. .#####. ####### .#####. .#####. ....... 其中#的是要包含在解决方案路径.中的单元格,而的是要排除的单元格。您可以用任意选择的字符替换.,,#和换行符,只要它们彼此不同即可。或者,您可以接受输入图像的实际位图。 输出量 产生的迷宫应采用以下形式: ############### # # # ### ####### # # #.........# # # #.#######.# # # #.#.......# # ###.#.######### ....#.#........ #####.#.####### # ...#..... # # #.#######.# # # #.........# # # ####### ### # # …

17
简化二进制
挑战 给定通过任何方式输入的二进制数字,请使用完整程序或函数“简化”该数字。 输入值 [binary] binary 是二进制数大于0的数字。 输出量 接受输入,不使用内置函数将其转换为以10为底,然后,如果该数字仅包含1和0,则将其转换为以10为底的数字,就好像它是另一个二进制数一样。重复该过程,直到无法以二进制形式读取该数字并输出该数字。 其他资讯 如果输入为1,则只需输出1。您的程序不应继续无限简化1。 这是代码高尔夫,因此以星期二(11月17日)为单位的最短答案为胜。 如果有什么令人困惑的地方,请留下评论,指出我需要清除的内容,然后我将进行相应的编辑。 不允许用于基本转换的内建函数。 例子 Input | Output 1 | 1 1010 | 2 1011 | 3 1100100 | 4 1100101 | 5 1111110011 | 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.