编程拼图和代码高尔夫

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

24
创建一个二进制标尺
给定数字n,生成此模式的前n列: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ################################ ... 在(1索引)n处的列的高度是n的二进制表示形式中的尾随0位数,再加上1。结果,底层填充了每一列,第二层填充了第二列,第三层填充了第四列,依此类推。 规则 您可以通过任何标准方法输入和输出。 您可以假定输入是1到999之间的一个整数(含)。 只要模式是完整的,输出就可以包含任意数量的空格。 该模式必须为1索引,并且格式必须与此处所示相同。 您可以使用任何单个非空白字符代替#,但不能更改空格字符。 测试用例 1 # 2 # ## 3 # ### …

19
计算一个单词的二进制拆分和
取一个s包含可打印ASCII字符的字符串作为输入,并输出其“二进制分割和”。需要解释吗? 如何获得二进制分割和? A4在下面的说明中,我们将以字符串为例。 将字符转换为二进制,将每个字母视为7位ASCII字符 A -> ASCII 65 -> 1000001 4 -> ASCII 52 -> 0110100 将二进制数连接成新的二进制数 A4 -> 1000001 & 0110100 -> 10000010110100 将新的二进制数字拆分为多个块,在其左边1不能有a 0。您不应拆分连续1的。 10000010110100 -> 100000, 10, 110, 100 将这些二进制数字转换为十进制 100000, 10, 110, 100 -> 32, 2, 6, 4 取这些数字的总和: 32 + 2 + 6 + 4 …

19
不同数量,相同重量
背景 整数的汉明权重是其二进制表示形式中的1的数量。对于此挑战,整数用32位表示,并且它们是无符号的。 挑战 给定0到2 ^ 32-1之间的整数(不包括在内),请在相同范围内以及汉明权重相同的情况下输出另一个整数。 例子 Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal) 46 | 0b0010 1110 | 4 | 15 12 | 0b0000 1100 | 2 | 3 1 | 0b0000 0001 | 1 | 2 3 | 0b0000 0011 | 2 | …

30
动态创建盒子
挑战: 绘制一个矩形的ASCII框:[] 规则: 接受宽度和高度输入 您可以假设它们都是数字 必须产生一个包含换行符\ n的字符串 例子: 2:2 [][] [][] 2:3 [][] [][] [][] 最小字节数获胜。

10
盲文化字符串
不,这不是将ASCII文本转换为盲文的伪装。 Unicode中有2 8 = 256个盲文模式。(“盲文”是指8单元电池) W,等等。那里有多少个ASCII字符? 2 7 = 128? 那么,让我们将ASCII转换成盲文,因为绝对没有理由不这样做! 从ASCII到盲文的方式 我们可以看到每个单元格代表一个位,每个单元格是否被“打孔”。 现在,我们可以分配每个单元以将ASCII字符的位表示为二进制。 (1 )(16 ) (2 )(32 ) (4 )(64 ) (8 )( - ) * ( - )为空白 现在我们可以将ASCII转换为盲文了。例如,A(65 = 01000001)等于⠡。 例子 Input -> Output Braille! -> ⠢⠺⠱⡱⡴⡴⠵⠑ (Upscaled) .. .o o. o. .. .. o. o. …

30
第n个字符等于最后一个字符的第n个字符吗?
受启发于起点是否等于终点 给定一个字符串s和一个整数n,输出有关nth中的char 是否s等于nin中结尾char中的th 的真/假s。 输入项 非空字符串和整数。您可以使用基于0的索引或基于1的索引。整数基于字符串保证有效。例如,如果字符串是“ supercalifragalistic123”,则对于基于1的索引,整数可以为1到23,对于基于0的索引可以为0到22。请注意,n长度可以大于的一半s。 输入仅限于可打印的ASCII。 输出量 真假值,取决于中的nth值是否s等于中的n最后一个值s。 请注意,对于从0开始的索引,最后一个字符在位置0;对于从1开始的索引,最后一个字符在位置1。可以将其视为将字符串与其相反的字符串进行比较。 测试用例 0索引 "1", 0 Truthy 1 == 1 "abc", 1 Truthy b == b "aaaaaaa", 3 Truthy a == a "[][]", 1 Falsey ] != [ "[][]", 0 Falsey [ != ] "ppqqpq", 2 Truthy q == q "ababab", …
22 code-golf  string 

12
反转并添加简并性
介绍 反向和加法听起来很简单,以n相反的顺序将其加到其数字上。(例如234 + 432 = 666)。 如果重复应用此过程,则某些数字最终将达到质数,而某些数字将永远不会达到质数。 例 我目前有 11431代表 11431 is not prime 11431 + 13411 = 24842 which is not prime 24842 + 24842 = 49684 which is not prime 49684 + 48694 = 98378 which is not prime 98378 + 87389 = 185767 which is prime! 这个数字很重要 …

20
找到第一场比赛
这是Brain-Flak生日前的一系列挑战之一。在这里找到更多。 挑战 对于这一挑战,您的目标是在完全匹配的括号中找到第一对匹配的()[]{}<>括号。借用DJMcMayhem对完全匹配的字符串的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 当且仅当每对括号中的正确开/右括号正确且顺序正确时,字符串才被视为“完全匹配”。 输入项 输入将由单个非空字符串或仅包含character的char数组组成()[]{}<>,并保证完全匹配。您可以采用符合我们I / O默认值的任何合理方式进行输入。 输出量 程序或函数的输出将是括号的索引,该括号将关闭第一个括号。输出必须是0或已1索引。同样,输出可以以与我们的I / O默认值相对应的任何合理方式进行。 测试用例 Input 0-indexed 1-indexed () 1 2 (<>) 3 4 <[]{<>}> 7 8 {}{}{}{} 1 2 [[]<>[]] 7 8 这是代码高尔夫球,最少字节获胜!

12
分而治之
有时,当我懒散地尝试考虑出现在我面前的数字时,过了一会儿,我意识到这比我想象的要容易。就拿2156例如:它最终发生,我认为这两个21和56是的倍数7,所以肯定2156 = 21 x 100 + 56也是一个倍数7。 您的任务是编写一些代码,以标识由于此类巧合而更易于分解的数字。 更确切地说: 编写一个程序或函数,将正整数n作为输入,如果存在一个除数d(大于1),n可以将其切成两个以产生两个正整数,每个整数都是的倍数d;然后返回一个真值。否则返回假值。 “切成两半”表示您的想法:通常的以10为底的表示形式n在某个点划分为前半部分和后半部分,以产生另外两个以10为底的整数。如果第二个整数的前导零是可以的(但请注意,它必须是一个正整数,所以拆分1230为123和0无效)。 真实值和虚假值可以取决于输入。例如,如果在您选择的语言中有任何非零整数是真实的,那么欢迎您返回除数d或“ 的除数”之一n(或n就此而言)。 例如,集合中至少有两位数字的任何偶数{2, 4, 6, 8}都会产生真实值:只需在第一个偶数之后将其分割即可。同样,例如,任何质数n都会产生伪造的值,任何一位数字也会产生伪造的值。 注意,考虑素数除数就足够了d。 您可以假定输入有效(即正整数)。 这是code-golf,因此以字节为单位的最短代码获胜。但是欢迎使用所有语言的解决方案,因此我们可以争取使用每种语言的最短代码,而不仅仅是整体上最短的代码。 测试用例 (您只需要输出一个真实值或虚假值;下面的注释仅是为了说明。)产生真实值的一些输入是: 39 (3 divides both 3 and 9) 64 (2 divides both 6 and 4) 497 (7 divides both 49 and 7) 990 (splitting into 99 and 0 is …

14
数字安全
编写程序,确定一个周期为正的整数序列是否具有以下性质:对于n该序列中出现的每个整数,n两次连续出现之间没有比其他整数多的整数了n。 例如,2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...确实具有此属性:的每对连续出现2在它们之间最多具有两个整数(例如2, 3, 5, 2和2, 3, 6, 2;每对的连续出现3在彼此之间最多具有三个整数;对于5和相同6。 但是,2, 3, 5, 2, 3, 4, 2, 3, 5, 2, 3, 4, ...它不具有此属性:的两个连续出现4,即4, 2, 3, 5, 2, 3, 4之间有四个以上的整数。 输入:正整数周期序列的合理表示。例如,诸如的有限列表{2, 3, 5, 2, 3, 6}可以代表2, 3, 5, 2, 3, 6, …

30
交换平价
任务 给定正整数n,则输出n+1if n为奇数,输出n-1if n为偶数。 输入项 一个正整数。您可以假定该整数在该语言的处理能力范围内。 输出量 正整数,如上所述。 测试用例 input output 1 2 2 1 3 4 4 3 5 6 6 5 7 8 8 7 313 314 314 313 计分 这是代码高尔夫球,因此最短答案以字节为单位。 有标准漏洞。 参考文献 OEIS A103889
22 code-golf  number 

12
高尔夫简单代码挑战:角色模式!
在此挑战中,您会收到一个字符串作为输入,例如包含X,Y和Z的字符串。“ XYZZ”。X,Y和Z代表特定字符。然后将此模式与第二个字符串输入进行比较。如果模式在第二个输入中作为子字符串存在,则返回True,否则返回False。在单词中找到模式后,程序将停止搜索并返回True。 例子 模式:“ XXYY” succeed ---> True (pattern found: ccee) success ---> False (pattern not matched) balloon ---> True (pattern found: lloo) 模式:“ XYXYZ” bananas ---> True (pattern found: nanas) banana ---> False (pattern not found) 注意:这不是实际输入。这是程序应如何工作的示例。您的程序应输出True或False或其他Truthy / Falsy值。 其他重要/有用信息 模式不需要包含X,Y和Z,它可以包含X和Y,或者甚至(尽管有些无意义)仅包含X。 该模式不能为空,但不会用作测试用例。 搜索字符串将不为空,并且将为小写。 模式中X,Y和Z的字母顺序无关紧要。 X,Y和Z 必须是唯一字符。 您可以使用任何所需的库。 分数由代码大小(以字节为单位)确定。最低分获胜。 祝好运!
22 code-golf 

11
让我们做一些位置运算!
从维基百科文章: 位置算术(拉丁算术,localis)是加法(非位置)二进制数字系统,约翰·纳皮尔在其《犹太论》(1617)中将其作为一种计算技术进行了符号和棋盘状网格的探索。 什么? 位置数字是一种使用字母书写数字的方式。 二进制符号尚未标准化,因此Napier使用他所谓的位置数字来表示二进制数字。Napier的系统使用符号值表示法来表示数字。它使用英语字母表中的连续字母来表示2的连续幂:a = 2 ^ 0 = 1,b = 2 ^ 1 = 2,c = 2 ^ 2 = 4,d = 2 ^ 3 = 8,e = 2 ^ 4 = 16,依此类推。 一个例子 ab =以10为基数的1 + 2 = 3 aabb = 1 + 1 + 2 + …

16
提取图像的RGB通道
在给定图像的情况下,要么作为输入(可能是RGB三元组),要么使用文件名作为输入(您可以假定图像具有特定的文件名,可能没有扩展名),则输出表示图像的单个颜色通道的图像。 您还将接受另一个输入,代表要输出的通道。输入可以是任何3个不同的符号之一。但是,符号必须是字符串或数字。但是,您不能将矩阵应用于输入数组。(例如{1, 0, 0},或{0, 1, 0})。 您将输出<input>输入图像的通道。您既可以将其保存到文件中,也可以输出一组RGB对。 您的程序对图像的大小(以px为单位)应该没有限制,并且必须支持.png,.jpg/ .jpeg/ .JPG或RGB三胞胎作为图像格式。(但是它可以支持任意数量) 测试用例: 红色通道: 绿色通道: 蓝色频道: 还有另一个测试用例,完全是红色的。 原始照片,红色,绿色和蓝色。(警告:看得太久的普通和红色通道太痛了) 另外2个测试用例: 原始,红色,绿色,蓝色。 原始,红色,绿色,蓝色。 后两个测试用例来自所有颜色的图像。

13
查找数字并计算输出
目的 给定的输入列表中6不同的数字,发现3个数字a,b并且c使得a × b = c,与a具有2位,b具有1位和c具有3个位数。以一种更直观的方式,您的程序必须在该图像的框中排列这6位数字: 如果存在多个解决方案,则可以输出其中任何一个。 输入项 6个不同的数字。您可以根据自己的语言以任何合理的方式使用它们。 输出量 3号a,b和c。只要将3个数字分开并始终以相同的顺序打印(但不一定按顺序a, b, c),输出格式就相对自由。 测试用例 1, 2, 3, 4, 5, 6 -> 54,3,162 2, 3, 4, 5, 6, 7 -> 57,6,342 or 52,7,364 计分 以字节为单位的最短代码获胜。
22 code-golf  math 

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.