Questions tagged «string»

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

5
使方括号
每个程序员都知道方括号[]{}()<>真的很有趣。为了加剧这种乐趣,可以将一组交织在一起的括号转换成可爱而模糊的图表。 假设您有一个包含方括号的字符串,例如[{][<(]})>(())。第一步是将琴弦顺时针旋转45度。(在Mathematica中,几乎可以使用来完成Rotate[ur_string,-pi/4])。这是第一步的结果: [ { ] [ < ( ] } ) > ( ( ) ) 接下来,在每个字符之间添加一个对角线空间。 [ { ] [ < ( ] } ) > ( ( ) ) 接下来,从最左边的括号开始,并在其与犯罪伙伴之间画一个正方形。 +---+ | | | { | | | +---+ [ < ( ] } ) > ( ( …

29
它是前缀代码吗?
在信息论中,“前缀代码”是一个字典,其中所有键都不是另一个的前缀。换句话说,这意味着没有一个字符串以其他任何字符串开头。 例如,{"9", "55"}是前缀代码,但{"5", "9", "55"}不是。 这样做的最大优点是,可以将编码的文本记下来,并且它们之间没有分隔符,并且仍然可以唯一地解密。这在诸如Huffman编码之类的压缩算法中得到了体现,该算法始终会生成最佳的前缀代码。 您的任务很简单:给定一个字符串列表,确定它是否是有效的前缀代码。 您的输入: 将是任何合理格式的字符串列表。 仅包含可打印的ASCII字符串。 将不包含任何空字符串。 您的输出将是一个true / falsey值:如果是有效的前缀代码,则为True,否则为falsey。 这是一些真实的测试用例: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] 以下是一些错误的测试案例: ["4", "42"] …

30
帮我打开盒子
我有一个ASCII艺术框,需要一个程序来打开它。 例子 输入: ------- | | |_____| 输出: / / / / / / / | | |_____| 规格 第一行仅包含-,其中至少3个 中间的行将以|空格开头,以| 所有中间行将相同 最后一行将以|have 开头,_以a结束| 所有行的长度将相同 打开盒子: 每一个-都应由/升序和位置替换。

30
这是n说话吗?
受到启发吗?,我提出了更艰巨的挑战。给定一个字符串,对于任何,确定该字符串是否为n-speak。n≥2ñ≥2n\geq 2 通过重复每个字母次来定义语音。当,字符串转换为。您的目标是弄清楚该输入对于任何n语音转换是否有效。nñnn=4ñ=4n = 4HelloHHHHeeeelllllllloooo 应当注意,对于,任何有效的n口语句子也是有效的k口语。因此,要解决的困难部分将是奇数值。n=2kñ=2ķn = 2knñn 输入值 至少包含2个字符的字符串。输入也可以是字符列表。输入区分大小写。 输出量 Truthy如果字符串是n说话,则为falsey否。 例子 真实情况 HHeelllloo,, wwoorrlldd!! TTTrrriiipppllleee ssspppeeeaaakkk QQQQuuuuaaaaddddrrrruuuupppplllleeee ssssppppeeeeaaaakkkk 7777777-------ssssssspppppppeeeeeeeaaaaaaakkkkkkk 999999999 aaaabb aaaaaaaabbbbcc aaaaabbbbb @@@ 如果要生成其他真实情况,可以使用此MathGolf脚本。将字符串放在引号内,并将的值作为输入。nñn 虚假案件 Hello, world! TTTrrriiipppllleee speak aaaaaaaaaaaaaaaab Ddoouubbllee ssppeeaakk aabbab aaaabbb a (does not need to be handled) (empty string, does not need to …

11
谁将会赢得选举?
这是一个挑战,其中有两个人1和2正在竞选办公室。人们在1和2的世界中以确定的方式进行投票,这可以使候选人在选举前弄清楚结果。 注意:这并不表示任何外部选举或其他政治事件。 两个人正在竞选办公室。我们将这些人称为1和2。因为他们俩都想知道他们是否会赢得选举,所以他们决定使用他们对人的知识以及一些代码来确定结果。由于要尽量减少政府支出,因此代码必须尽可能短。 您的任务:根据一连串的投票方式,输出赢得选举的人。 在1和2的有趣和令人兴奋的世界中,共有五类人: A:肯定会投1票的人。 B:肯定会投赞成票2的人。 X:将投票支持的人,无论左边的人投票支持谁。如果他们的左边没有人,则他们投票给右边的人投票的人。如果不清楚其右边的人在为谁投票,则他们不会投票。 Y:人们会投票反对他们左边的那个人。如果他们的左边没有人,那么他们将投票反对右边的人。如果不清楚其右边的人在为谁投票,则他们不会投票。 N:不投票的人。 这是从左到右评估的。 例: 为了清楚起见,任何被“评估”的人都是小写字母。 Input: `XXAYAN` xX Votes for whoever their friend is voting for. Their friend has not decided yet, so it is unclear, so they do not vote. Xx Person to left is voting "none" so votes "none." a …

12
宜人的
甲混成词是两个词的组合拍摄每一个单词的一部分,使它们变成单一的新词。例如,狮子 + 老虎 => liger。 让我们编写一个从一对输入单词生成portmanteaus的程序。电脑不是英语水平最好的,所以我们需要建立一些规则以确保输出的portmanteaus令人耳目一新。 (为清楚起见li|ger,此处的示例在前缀和后缀之间显示了分隔符:。但是,程序的实际输出不应包含分隔符:liger。) 每个portmanteau将由第一个单词的非空前缀与第二个单词的非空后缀组成:yes到li|ger,no to |iger。 如果前缀以元音结尾,则后缀必须以辅音开头,反之亦然:是lio|ger或l|er,否是lio|iger或l|ger。您可以决定算作y元音还是辅音。但是,您的解决方案必须选择一个选项并坚持使用。 产生的字词不得完整包含两个原始字词:是lio|ger,lion|iger或li|tiger。 即使所讨论的部分是由两个单词的一部分组成的,该规则仍然成立:输入为two+时words,输出tw|ords仍然是非法的,因为它包含子字符串words。(此对的唯一有效输出是t|ords。) 您的程序或函数必须使用两个单词,并输出/返回可以由这些单词按该顺序形成的所有令人愉悦的portmanteaus列表。 细节 标准输入和输出方法适用。禁止出现标准漏洞。 单词将仅包含小写字母(或者,如果您愿意,也仅包含大写字母)。 您可以将两个输入单词作为列表,元组,两个单独的输入,带有非字母定界符的单个字符串等。 输出格式同样具有灵活性;如果您返回或输出一个字符串,则应将其定界,以使一个portmanteau单词的末尾清晰而下一个开始。 在portmanteau单词内不应有任何定界符。 如果您的输出列表中包含重复的结果,也可以;也可以删除重复项。 测试用例 > lion, tiger < liger, ler, liger, lir, lioger, lior > tiger, lion < tion, ton, tin, tigion, tigon, tigen > spoon, fork < sork, spork, spork, spok, …

23
蛮力配电盘
前几天,我们的团队去了一个逃生室。难题之一是由六个机械开关组成的板,您必须找到打开和关闭的正确组合才能解锁盒子,如下所示: -v-v-v- -v-v-v- 作为开发人员,我们认为尝试2 ^ 6 = 64个组合中的每个组合要比实际解决难题更有效。因此,我们分配了一个可怜的家伙进行一些二进制计数: -v-v-v- -v-v-v- -v-v-v- -v-v-^- -v-v-v- -v-^-v- -v-v-v- -v-^-^- 等等。 挑战 编写一个程序,给定所有开关都按上述格式设置为关闭的字符串,从而以任意顺序生成打开和关闭的所有组合。 您可以编写完整的程序或函数。因此,您的程序可以通过stdin,文件或单个字符串参数接收输入,然后返回或打印输出。如果返回,则输出可能在列表/数组/等中。而不是单个字符串。如果输出为单个字符串,则板子之间应使用换行符分隔(允许使用尾随换行符)。 输入字符串将与正则表达式匹配,r'((-v)+-)(\n(-v)+-)*'并代表一块板,所有开关均关闭。这意味着无零情况,并且开关左对齐。每行可能没有相同数量的开关。 每个输出板应具有与输入完全相同的格式,除了v可以根据需要用^代替。输出板可以用任意数量的换行符分隔。 由于运行时间自然是开关数量的O(2 ^ n),因此您的代码将不会在任何排列的10个以上的开关上进行测试。 这是代码高尔夫球,因此以字节数为单位的最短代码获胜。 样本输入和输出 输入: -v- 可能的输出: -v- -^- 输入: -v- -v- 可能的输出: -^- -^- -^- -v- -v- -^- -v- -v- 由于要为更大数量的开关检查答案非常繁琐,因此这里有一个Python脚本作为健全性检查工具。(不幸的是,我提供了一个当前注释掉的代码段,以在给定的输入文件中生成预期的输出,以备您需要更多的测试用例。)将输入字符串放在名为“ input”的文件中,并将换行符分隔的输出(对不起,没有列表格式)放在同一目录中的名为“ output”的文件中,然后运行python3 sanitycheck.py。

3
OOP:面向对象的编程
似乎不太适合代码打高尔夫球的鲜为人知的编程范例之一是面向重叠编程(OOP) *。当编写部分相同的代码时,只需将相同的部分重叠并以某种方式记住两条原始代码行的开头,就可以节省许多字节。您的任务是编写两个重叠的程序或函数compress,decompress并遵循以下规范: *请不要在生产代码中使用。 compress compress以任何方便的格式获取两个字符串,并尽可能地将它们重叠。即s返回的字符串的长度最小,这样两个输入字符串都是的子字符串s。此外,返回一些标识两个字符串的开始和结束索引的输出。 示例:(具体的IO格式由您决定) compress("abcd", "deab") -> "deabcd" ((2,5),(0,3)) compress("abcd", "bc") -> "abcd" ((0,3),(1,2)) compress("abc", "def") -> "abcdef" ((0,2),(3,5)) or "defabc" ((3,5),(0,2)) decompress decompress计算的反函数compress,给定一个字符串和两个开始和结束索引(以您的返回格式compress),返回两个原始字符串。您只需要处理有效的输入。以下等式适用于所有字符串s1,s2: (s1, s2) == decompress (compress (s1, s2)) 示例:(compress示例的反向) decompress "deabcd" ((2,5),(0,3)) -> "abcd" "deab" decompress "abcd" ((0,3),(1,2)) -> "abcd" "bc" decompress "abcdef" ((0,2),(3,5)) -> …

30
将标准中的数字相加
考虑每行一个整数的流/文件。例如: 123 5 99 您的代码应输出这些数字的总和,即227。 输入格式严格为每行一个整数。例如,您不能假定输入作为整数数组在一行上。 您可以从STDIN中以文件名或具有您选择的名称的文件形式进行输入。您可以选择哪一个。不允许有其他获取输入的方法。 输入将包含至少一个整数。您可以假设所有整数均为非负数,并且它们的总和小于。232

30
是真的吗 问果冻!
背景 受到Octave(以及扩展为MATL)对真/伪矩阵的非常方便的解释的启发,Jelly得到了Ȧ(所有八度音阶)原子。 Ȧ将数组作为输入,如果数组为非空并且在树结构中的任何位置都不包含数字0(整数,浮点数或复数),则返回1;否则,返回0。 例如,数组[[]]是真实的,因为它是非空的并且不包含零。而[[0]]是虚假的,因为它在最内层包含0。 任务 用您选择的编程语言编写一个完整的程序或函数,该函数或函数将可能为空的,可能是锯齿状的整数数组作为输入,并打印或返回一个真值或伪值,该值指示a 分别返回1还是0。 您的提交必须遵守以下规则。 真值和伪值对于所有输入必须一致,即,Ȧ返回1的所有数组必须映射到相同的真值,而Ȧ返回0的所有数组必须映射到相同的伪值。 由于完整程序只能将数组的字符串表示形式作为输入,因此允许这样做。但是,您必须使用语言的规范表示形式,由repr或类似形式返回。 特别是,您不能假定数组的第一个元素前面将带有空格。 如果(且仅当)您的语言不能本地表示锯齿状数组,则可以使用任何现有编程语言的规范语法对输入进行字符串表示。 如果您的语言有几种表示锯齿数组的方式(例如,列表和元组),则只需支持其中一种。 如果您的语言具有内置语言,并且本身就是对此挑战的有效提交,那么您可以不在答案中使用它。允许所有其他内置插件。 鼓励您使用数组和字符串操作发布答案,即使其中一个比另一个短得多。 所有标准代码高尔夫球规则均适用。 可能以字节为单位的最短代码获胜! 真实的测试案例 [1] [10] [[]] [[[[1]]]] [[], [1], [1, 2]] [[1], [1, [2]], [1, [2, [3]]]] [[8], [8, [9]], [8, [9, [10]]]] 虚假的测试用例 [] [0] [0, -1] [-1, 0] [[[[0]]]] [[0], [1, 2], [3, …

6
评分Tarzan的奥林匹克葡萄摇摆常规
奥运会的葡萄树摆动者在标准的树上执行常规活动。特别是,“标准树” n具有0向上穿过的顶点n-1以及将每个非零顶点连接a到其n % a下面的顶点的边。因此,例如,标准树5如下所示: 3 | 2 4 \ / 1 | 0 因为5除以3时的余数为2,所以5除以2或4时的余数为1,而5除以1时的余数为0。 今年,泰山将捍卫他的金新套路,每个始于顶点n - 1,秋千到顶点n - 2,继续顶点n - 3,等等,直到最后他卸除到顶点0。 例行程序的分数是每个挥杆(包括拆卸)的分数之和,挥杆的分数是树内起点和终点之间的距离。因此,Tarzan在标准树5上的例程得分为6: 从摇摆4到3得分3分(向下,向上,向上), 从摇摆3到2得分(下降)一分, 从摆动2到1得分1分(向下),并且 从下来1,0得分为1分(下降)。 编写一个程序或函数,给定一个正整数n,该程序或函数将计算Tarzan例程在Standard Tree上的得分n。样本输入和输出: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

5
修补段落
本着Patch the Image的精神,这是一个类似的挑战,但带有文本。 挑战 腐烂折磨了您宝贵的文字!给定一个由ASCII字符组成的段落,该段落中有一个矩形孔,您的程序应尝试用适当的文本填充该孔,以使该段落尽可能地融合。 进一步的定义 该孔将始终为矩形,并且可能会跨越多条线。 只会有一个洞。 请注意,孔不一定落在单词边界上(实际上,通常不会)。 孔最多为输入段落的25%,但可能会重叠或延伸到“普通”文本的“末端”(请参见下面的Euclid或Badger示例)。 由于发现孔不是挑战的重点,因此它将仅由井号组成#,以便于识别。 输入段落中的其他任何位置都不会带有井号。 您的代码无法在下面的示例中使用“常规”文本-它只会接收和处理带有漏洞的文本。 输入可以是单个多行字符串,也可以是字符串数组(每行一个元素),也可以是文件等。-您可以选择最适合您的语言的语言。 如果需要的话,可以采用可选的附加输入来详述孔的坐标(例如,坐标元组等)。 请在您的提交中描述您的算法。 表决 要求选民根据算法填补文本空缺的程度来判断条目。一些建议包括以下内容: 填充的区域是否与该段落的其余部分相匹配的空格和标点的近似分布? 填充区域是否引入错误的语法?(例如,连续两个空格,一个句点和一个问号,一个错误的序列,例如, ,,等等) 如果您起眼睛(因此您实际上并没有在阅读文字),您能看到孔过去的位置吗? 如果孔外没有CamelCase单词,该孔是否包含任何单词?如果孔外没有大写字母,该孔中是否包含大写字母?如果孔外有很多大写字母,该孔是否包含一定比例的量? 有效性标准 为了使提交的内容被认为是有效的,不得在孔外(包括尾随空格)更改段落的任何文本。末尾的单个换行符是可选的。 测试用例 格式是代码块中的原始段落,后跟带孔的同一段落。带孔的段落将用于输入。 1(修补图像) In a popular image editing software there is a feature, that patches (The term used in image processing is inpainting as @minxomat …

3
击倒PPCG用户名
我在聊天室中进行的评论以及随后的谈话激发了我挑战这一挑战。 我是这里唯一的缩写缩写人吗?我们都在打高尔夫球。我们可以有MB和D-nob以及...O。 如果我被称为“ CH”,那么我认为其他所有人也应该有一个以缩写开头的昵称。 以下是按声誉使用的排名前100位的编程难题和代码高尔夫用户的列表: Martin Büttner Doorknob Peter Taylor Howard marinus Dennis DigitalTrauma David Carraher primo squeamish ossifrage Keith Randall Ilmari Karonen Quincunx Optimizer grc Calvin's Hobbies ugoren Mig gnibbler Sp3000 aditsu histocrat Ventero xnor mniip Geobits J B Joe Z. Gareth Jan Dvorak isaacg edc65 Victor steveverrill feersum …
32 code-golf  string 

29
爆炸子串
介绍 让我们观察一下字符串abc。可以从中创建的子字符串为: a, ab, abc, b, bc, c 现在,我们需要将它们对齐在初始字符串下,如下所示: abc a b c ab bc abc 字符串的顺序无关紧要,因此这也是完全有效的: abc a ab abc b bc c 因此,子字符串位于初始字符串中子字符串位置的下方。因此,对于abcdef和子字符串cde,它看起来像这样: abcdef cde 任务 如上所示,任务是对齐所有长度大于0的子字符串。您可以假设字符串本身仅包含字母字符,并且至少包含1个字符。对于填充,您可以使用空格或其他一些非字母可打印的ASCII字符(32 - 127)。也许不必提,但是字符串本身将仅包含唯一字符,因此不喜欢aba,因为它a发生了两次。 测试用例 输入: abcde 可能的输出: a ab abc abcd abcde b bc bcd bcde c cd cde d de e …
32 code-golf  string 

30
伸展单词
编写一个程序或函数来复制单词中的字母,以便该单词中从左到右排列的所有重复字母都将构成输入数组。 例如: input: chameleon, [c,a,l,n] output: cchaamelleonn 输入值 起始词(例如chameleon) 字符数组([c,a,l,n])或表示数组(caln)的字符串,或类似的东西 输入可以通过功能参数,STDIN或等效语言进行 所有输入均为小写字母(az) 输出量 改变的词 如果有多种解决方案,则可以打印任何解决方案 input: banana [n,a] possible outputs: bannaana, banannaa |-|---------|-|--->[n,a] 您可以假设输入单词(不一定是数组)在数组中将有字母(按顺序) 您可能还假设输入没有相同的连续字母(不是苹果,怪胎,绿色,玻璃,门...) 例子 input: abcdefghij, [a,b,c] output: aabbccdefghij input: lizard, [i,a,r,d] output: liizaarrdd input: coconut, [c,o] ouput: ccooconut or coccoonut or ccocoonut input: onomatopoeia, [o,o,a,o,o] output: oonoomaatoopooeia …

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.