Questions tagged «string»

通过使用和操纵琴弦来解决特定问题的竞赛。

15
字母替换挑战
这个想法很简单。您必须通过提供3个字符串(输入可以用逗号分隔,单独的输入或作为数组)来创建“可视化”字母替换。第一部分是您要纠正的单词,第二部分是您想要替换的字母,第三部分是第二部分中字母的替换。 例如: | | Input | Starting Word | Output | |----|-----------------------------|---------------|-------------| | #1 | Hello world -wo -ld +Ea +th | Hello world | Hello Earth | | #2 | Hello World -wo -ld +Ea +th | Hello World | Hello Worth | | #3 | Hello -llo +y …
17 code-golf  string 

6
一cube文字݀
上次您制作了一个正方形的文本,但是现在,您可以制作一个立方体的文本了吗? 挑战 给定一个字符串,以多维数据集的形式输出该字符串。 您可以假定该字符串将始终具有2个字符或更多,并且仅具有可打印的ascii字符。 如何制作文字方块 测试用例 Input: Test Output: Test e ss s e e tseT T s e e e ss Test Input: Hello, world! Output: Hello, world! e dd l l l l r r o o o , w w w , , o o o r …

13
逆排列索引
介绍 具有n个元素的列表的字典排列可以从0到n编号!-1.例如3!= 6个置换(1,2,3)将是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。 将排列应用于列表时,其元素的排列顺序与排列中的数字相同。例如,将置换(2,3,1)应用于l = (a,b,c)yield (l[2],l[3],l[1]) = (b,c,a)。 排列的逆定义为颠倒此操作的排列,即应用排列,然后其逆(反之亦然)不会修改数组。例如,(2,3,1)is 的逆(3,1,2),因为将其应用于(b,c,a)yields (a,b,c)。 同样,应用于排列本身的排列的逆值会产生整数1… n。例如,应用(3,1,2)到(2,3,1)产率(1,2,3)。 现在,我们将函数revind(x)定义为索引为x的排列的逆排列的索引。(如果您有兴趣,这是A056019。) 由于与指数置换我只修改了最后ķ列表中的项目当且仅当 0≤ 我 < ķ!,我们可以添加任意数量的元素到列表的开始,而不会影响revind(我)。因此,列表的长度不影响结果。 挑战 您的任务是实现revind(x)。您将编写一个完整的程序或函数,以单个非负整数x作为输入/参数,并以单个非负整数输出/返回结果。 输入和输出可以是0索引或1索引,但是它们之间必须保持一致。 禁止按索引生成排列,返回排列的索引或找到逆排列的内建函数。(允许生成所有排列或下一个排列的构建体。) 适用标准代码高尔夫球规则。 例子 下面的示例是0索引的。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

12
尺寸倒计时
编写一个函数f(n,k),显示从n开始的k维倒数。 从5开始的一维倒数看起来像 54321 从5开始的二维倒数如下 54321 4321 321 21 1 最后,从5开始的3维倒数如下 54321 4321 321 21 1 4321 321 21 1 321 21 1 21 1 1 正式定义 从任何n开始的一维倒数是一行,数字n,n-1,...,1连接在一起(后跟换行符)。 对于任何k,从1开始的k维倒数是单行 1 对于n> 1和k> 1,从n开始的k维倒数是从n开始的(k-1)维倒数,然后是从n-1开始的k维倒数。 输入项 您选择的任何格式的两个正整数k和n <= 9。 输出量 从n开始的k维倒数,每个1维倒数后都有换行符。输出中允许额外的换行符。 计分 标准高尔夫得分。 奖金示例 这是一个示例,其中k> n,是从3开始的4维倒数(带有多余的注释,这些注释不包含在实际解决方案中): -- 3-dimensional countdown from 3 321 21 …
17 code-golf  string 

3
用绳子带领你的乌龟
编写一个程序或函数,该程序或函数采用非空单行字符串,该字符串包含可打印的ascii字符(不包括空格): !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 您可以假设输入有效。 根据输入,按照乌龟图形-像这样的规则,在乌龟始终占据一个栅格空间并且只能面对基本方向的情况下,在文本空间和换行符的文本网格上绘制新的字符串。 将输入字符串中的第一个字符打印到文本网格中。乌龟从这里开始朝右。遍历输入字符串中的其余字符(仅在乌龟被卡住时才停止),重复此过程: 如果与海龟直接相邻的4个网格空间都被填充了(即它们都不是一个空间),请停止迭代。乌龟被卡住,网格已尽可能完整。 查看输入中的当前字符与前一个字符的比较: 如果当前角色在词汇上比前一个更早,将乌龟向左旋转四分之一圈。 如果当前角色在词汇上在前一个之后,则将乌龟向右旋转四分之一圈。 如果当前角色与前一个角色相同,请不要旋转乌龟。 如果乌龟现在面对的网格空间不为空(即不是一个空间),请反复将乌龟向左旋转四分之一圈,直到乌龟面对一个空的网格空间。 将乌龟朝着她所面对的方向向前移动一个格,并在乌龟的新位置将当前角色打印在格上。 打印或返回结果文本网格字符串,没有多余的行或列的空白。行的行尾空格可以一直到最右边的列,且不能有空格,但不能超过。可选地允许单条尾随换行符。 以字节为单位的最短代码获胜。 例 这是输入的所有步骤spattuuxze。所述^V<>字符显示龟面对的方向,他们是不输入或输出的一部分。 s> ^ p s <ap s ^ t ap s ^ t t ap s tu> t ap s tuu> t ap s tuu t x apV s tuu <zx ap s 此时,乌龟被卡住了,所以e永不打印,最终输出为: tuu …
17 code-golf  string  grid 

8
在Copeland–Erdős常数中查找数字
背景 所述克柏兰-尔杜斯常数是“0”的串联 以10为底的质数表示法。它的值是 0.23571113171923293137414... 另请参阅OEIS A033308。 Copeland和Erdős证明这是一个正常数。这意味着可以在Copeland-Erdős常数的十进制扩展的某个点上找到每个自然数。 挑战 给定一个正整数,将其以10为基数(不带前导零)并输出其在Copeland-Erdős常数的十进制数字序列中的第一个出现的索引。 允许使用任何合理的输入和输出格式,但输入和输出应以10为底。在这种情况下,可以假定不包含前导零。 从常量的第一个小数开始,输出可以是从0开始或从1开始。 实际结果可能会受到数据类型,内存或计算能力的限制,因此该程序在某些测试案例中可能会失败。但: 理论上,任何输入都应该工作(即不考虑这些限制)。 实际上,它至少应在前四个案例中起作用,并且每个案例的结果都应在不到一分钟的时间内得出。 测试用例 输出在此基于1给出。 13 --> 7 # Any prime is of course easy to find 997 --> 44 # ... and seems to always appear at a position less than itself 999 --> 1013 # Of course …

12
沙米尔的秘密分享
给定n(玩家数量),t(阈值)和s(秘密),输出n由Shamir的秘密共享算法生成的秘密。 算法 出于这一挑战的目的,将在GF(251)(size的有限域251,也称为整数mod 251)中进行计算。通常,将选择该字段,使其大小比的素数大得多n。为了简化挑战,字段大小将保持不变。251选择它是因为它是8位无符号整数可以表示的最大质数。 生成t-1(包括)范围内的随机整数[0, 250]。标明这些一个1通过一个T-1 。 构造一个t-1使用次多项式s为恒定值,并从步骤1中的功率的系数的随机整数x:F(X)= S + X *一个1 + X 2 * A 2 + ... + X 叔1 * a t-1。 (含)范围内(f(z) mod 251)每个输出。z[1, n] 参考实施 #!/usr/bin/env python from __future__ import print_function import random import sys # Shamir's Secret Sharing algorithm # Input is taken …
17 code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

7
正常和可视字符串还原
编写一些充当cat程序的代码。即,输入字符串并按原样输出。但是代码的正常还原必须输出输入字符串的正常还原。并且代码的可视化还原必须输出输入字符串的可视化还原。 正常的反转是字符串的反转字符序列。视觉还原是正常的还原,字符分别()[]{}<>替换)(][}{><为。 您可以使用任何包含字符()[]{}<>且在此挑战之前发布的代码页来定义字符。您必须对所有代码使用相同的代码页。您的原始代码在此代码页中必须是有效的,并且将您的任何反向代码应用于该代码页都会产生效果。 这是代码高尔夫,以字节为单位的最短代码获胜。 例 对于字符串AB(XY),其正常和视觉还原分别为)YX(BA和(YX)BA。 如果您的代码(使用假设语言)为AB(XY),则代码)YX(BA和(YX)BA应该分别输出输入字符串的正常和视觉转换。并且AB(XY)应该充当猫的程序。

1
Symme-尝试此三角试用
通过添加一些空格和换行符(并使其保持相同的阅读顺序),可以将长度为正三角数(1、3、6、10、15 ...)的字符串排列为“等边文字三角形”。 例如,长度为10的字符串ABCDEFGHIJ变为: A B C D E F G H I J 编写一个包含这样的字符串的程序或函数,只包含字符0和1。(您可以假定输入有效。) 对于所得的“等边文字三角形”,输出(打印或返回)表示对称类型的四个数字之一: 2如果三角形具有双边对称性,则输出。也就是说,它从任意一个角到另一侧的中点都有一条对称线。 例子: 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 3如果三角形具有旋转对称性,则输出。也就是说,它可以旋转120°而没有视觉变化。 例子: 0 1 0 0 1 1 0 1 0 …

5
再次使这段代码说明
介绍 这里的大多数代码高尔夫球手在其提交的内容中添加了解释,因此更容易理解正在发生的事情。通常,代码行在左侧,相应的说明在右侧,带有某种分隔符。为了使外观漂亮,分隔符都在同一列上。同样,较长的说明文字通常也包含在下一行,因此读者不必水平滚动即可阅读所有内容。 但是,当您由于疯狂打高尔夫球而想要编辑此说明时,通常会花时间来重新整理您的说明。由于这是一项非常重复的任务,因此您需要为此编写一个程序。 挑战 给定几行带有说明的代码和一个分隔符,输出格式正确的带有说明的代码。 例 输入项 shM-crz1dc4。“ ANDBYOROF#z =输入 rz1#将输入转换为大写 cd#在空格处分割输入 c4。“ ANDBYOROF#从打包字符串中创建单词列表,该列表将被忽略 -#过滤掉那些词 HM#只取所有单词的首字母 s#将它们连接成一个字符串 输出量 shM-crz1dc4。“ ANDBYOROF#z =输入 rz1#将输入转换为大写 cd#在空格处分割输入 c4。“ ANDBYOROF#从打包字符串中创建单词列表,该字符串应为 #被忽略 -#过滤掉那些词 HM#只取所有单词的首字母 s#将它们连接成一个字符串 第一个可以找到该代码功能的cookie。 格式化算法 找到最长的代码行(不包括解释以及代码和分隔符之间的空格)。 在此代码行后添加5个空格,并在相应的分隔符后附加说明。现在这是参考线。 将每隔一行调整到该参考线,以使分隔符都在同一列中。 通过以下方式将所有超过93个字符的行换行: 找到最后一个单词,该单词的末尾位于第93列或更低的列。 将这之后的所有单词都包含在内,并用前导分隔符和正确的间距将其换行。这两个单词之间的空格必须删除,因此第一行以单词字符结尾,第二行以分隔符之后的一个字符开头。 如果结果行仍然超过93个字符,请再次执行相同操作,直到每行低于94个字符。 笔记 单词由非空格字符组成。单词由单个空格分隔。 自动换行始终是可能的。这意味着没有一个单词太长以至于不可能包装。 输入将仅包含可打印的ASCII,并且没有任何结尾的空格 分隔符每行只会出现一次。 尽管说明的长度可以是无限的,但分隔符和代码只能具有最大93 - 5 = 87字符长度的组合。5个字符是代码和分隔符之间的空格。代码和分隔符将始终至少一个字符长。 输入中可能包含空行。这些字符将永远不包含任何字符(如果将输入作为多行字符串,则换行符除外)。这些空行也必须出现在输出中。 每行都会有一些代码,分隔符和说明。空行例外。 …
17 code-golf  string 

6
翻译Glypho程序
给定任何有效Glypho程序的输入,输出其“人类可读”的对应内容。 Glypho是一个有趣的esolang创意: 此处提供了指令参考。对于每条指令,字符abcd代表组成每条指令的符号。a表示第一个唯一符号,b表示第二个唯一符号,依此类推。 aaaa ..... n NOP - no operation; do nothing aaab ..... i Input - push input onto top of stack aaba ..... > Rot - pops top stack element and pushes to bottom of stack aabb ..... \ Swap - swaps top two stack elements aabc ..... …

8
谁会赢得足球比赛?
美国足球锦标赛,超级碗50,今天晚上11:30发生UTC(你可以观看在线直播)。挑战是为了庆祝它。 在美式足球比赛中,两支球队竞争以获取最高分,并且有六种方法来得分。我们将给每个缩写: 射门得分 - FG:3分 触地得分 - TD:6分 加分 - XP:1分-只能在达阵后直接得分。 两点转换 - XD(就像加分,但更快乐):2分-只能在触地得分后直接得分。 安全 - S:2分 公平接球 - FCK:3分(非常罕见的比赛) 编写一个仅包含大写和小写这六个缩写的单行字符串的程序或函数。 该字符串表示足球比赛(或比赛的一部分)中的所有得分事件,其中大写字母属于一个团队,小写字母属于另一个团队。 您的工作是报告游戏的最终成绩,并指出谁赢得了表格输出 [score 1] [to] [score 2] 哪里: [score 1] 始终是两个分数中较大的一个(如果不相等),无论大写还是小写获胜。 [score 2] 是两个分数中较小的一个(如果不相等)。 [to]是TO大写团队获胜,to小写团队获胜,还是To平局。 例如:将所有得分事件在第四十九届超级杯 可以用字符串来概括 TDXPtdxpTDXPtdxpfgtdxpTDXPTDXP 大写字母是新英格兰爱国者,小写字母是 Seattle Seahawks。爱国者队得分28,老鹰队得分24,因此输出为: 28 TO 24 笔记 您的程序/函数必须支持任意输入,包括空字符串。 XP并且XD只会在之后发生TD。xp并且xd只会在之后发生td。 在某些情况下,您可能不会假设输入字符串开始或结束。 输入和输出中都可选地允许尾随换行符 …

4
爆炸的猫!
挑战 您将要编写一个程序,接受长度为的字符串输入n: 将kthchar 放在空间的中心,在k = (n+1)/2。这将是地面零的位置。 将其余的非空白char随机放置在地面零附近。毕达哥拉斯与炭黑的距离不得超过n。 输出结果。 如果需要澄清,请参见下面的示例。 规则 有标准漏洞! I / O必须采用字符串形式。 输入将始终为奇数,以确保将中央字符置于零地。 每个有效输出的发生概率均应为非零。 这是代码高尔夫球;以字节为单位的最短代码胜出! 例 输入: qwert 爆炸的边界从地面零开始(x标记其余字符为有效位置): x xxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxexxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxx x 输出示例: t r q e w

1
压扁的连字
以下是Unicode 中一些常见的连字的列表 (我可以使用Debian上的Compose键创建的连字): Orig Ascii Lig ae [ae] æ AE [AE] Æ oe [oe] œ OE [OE] Œ ij [ij] ij IJ [IJ] IJ ff [ff] ff fi [fi] fi fl [fl] fl ffi [ffi] ffi ffl [ffl] ffl 在此挑战中,您有两个选择:使用实际的UTF-8连字,或使用仅ASCII的变体。如果您使用实际的UTF-8连字变体,则可获得20%的奖金。如果您使用仅ASCII变体,则可以假定除了表示连字以外,方括号不会涉及。 挑战:给定字符串作为输入,输出相同的字符串 所有原始的连字都被扩展后的连字所代替。 贪婪地匹配:affib变成affib(a[ffi]b),而不是affib(a[ff]ib)或affib(af[fi]b)。 所有“扩展的”字母序列都被连字替换。 例如,æOEfoo([ae]OEfoo)变为aeŒfoo(ae[OE]foo)。 完全独立操作:ffi([ff]i)成为ffi(ffi),没有ffi ([ffi])。 听起来很简单?有一个陷阱:每次两个非连字恰好重叠 一个字符时,必须将两个连字都插入到字符串中。这里有一些测试用例来演示: Input …

7
解决日期格式纠纷
日期的格式顺序是当今世界面临的最复杂和分歧最大的问题之一。考虑到我们这么说,我们当中有些人激烈地认为“月/日/年”是适当的。其他人则大声疾呼说,“天/月/年”是最好的,因为它会将术语按其表示的持续时间升序排列。 适可而止。计算机可以简单,公平地解决此争议。您的代码(一个完整的函数或程序)将使用一个以斜杠分隔的日期字符串,例如12/1/2015。请注意,这是确切的格式,没有前导零,并且末尾有四位数的年份。 如果绝对是月/日/年,例如10/31/1998,则以该确切格式输出该日期的文本表示,并带有完整的月份名称,日期和年份:October 31, 1998 例如,如果绝对是日/月/年25/12/1989,则输出相同类型的文本表示形式:December 25, 1989。 如果是月/日/年还是日/月/年的模棱两可,请通过组合以下两个可能的日期来输出可解决歧义的日期: 通过取的名字上半年创建一个新的月份名称前面月份和下半年追加后一个月。对于长度不固定的月份,前半部分会收到多余的字母。要明确,月份的第一半部Janu,Febr,Mar,Apr,Ma,Ju,Ju,Aug,Septe,Octo,Nove,和Dece因此第二半部ary,uary,ch,il,y,ne,ly,ust,mber,ber,mber,和mber。 通过将两个可能的天数取平均值来计算天数,当平均值不是整数时取下限。 输出该日期的文本表示形式,例如对于10/8/2011output Augber 9, 2011。 如果输入日期不能是月/日/年或日/月/年(例如13/13/2013甚至2/30/2002),则任何行为都是可以接受的。此代码高尔夫,最短的代码获胜! 测试用例: 10/31/1998 给 October 31, 1998 25/12/1989 给 December 25, 1989 10/8/2011 给 Augber 9, 2011 8/5/1957 给 Maust 6, 1957 9/12/2012 (足够)给 September 10, 2012 1/1/2000 给 January 1, 2000
17 code-golf  string 

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.