Questions tagged «balanced-string»

在平衡字符串中,某些字符或子字符串对始终以相同的数量出现。通常,还存在必须限制这些对的附加限制。最常见的示例是带有正确括号的字符串。另请参见[回文]和[语法]标记。

30
伸缩括号
考虑正确平衡的括号的非空字符串: (()(()())()((())))(()) 我们可以想象每对括号代表一个折叠的伸缩式结构中的圆环。因此,让我们扩展望远镜: ( )( ) ()( )()( ) () ()() ( ) () 另一种看待它的方法是将深度为n的括号移到第n行,同时保持其水平位置。 您的任务是采用这样的平衡括号字符串,并生成扩展版本。 您可以编写程序或函数,通过STDIN(或最接近的等效项),命令行参数或函数参数获取输入,并通过STDOUT(或最接近的等效项),返回值或函数(out)参数生成输出。 您可以假定输入字符串有效,即仅包含正确平衡的括号。 您可以在每行上打印尾随空格,但不要在多余的空格前打印多余的空格。总的来说,这些行的长度不能超过输入字符串长度的两倍。您可以选择打印单个尾随换行符。 例子 除了上面的示例,这里还有更多的测试用例(输入和输出用空行分隔)。 () () (((()))) ( ) ( ) ( ) () ()(())((()))(())() ()( )( )( )() () ( ) () () ((()())()(()(())())) ( ) ( )()( ) ()() ()( )() …

30
N(e(s(t)))一个字符串
要“函数嵌套”字符串,您必须: 将第一个字符视为函数,然后将后续字符视为该函数的参数。例如,如果输入字符串是Hello,那么第一步将是: H(ello) 然后,对每个子字符串重复相同的步骤。这样我们得到: H(ello) H(e(llo)) H(e(l(lo))) H(e(l(l(o)))) 您的任务是编写“函数嵌套”字符串的程序或函数。例如,如果输入字符串为Hello world!,则应输出: H(e(l(l(o( (w(o(r(l(d(!))))))))))) 输入将仅包含可打印的ASCII,并且您可以采用任何合理的格式输入和输出。例如,STDIN / STDOUT,函数参数和返回值,对文件的读写等。 为简单起见,您还可以假定输入将不包含括号,并且将不为空。 Input: Nest a string Output: N(e(s(t( (a( (s(t(r(i(n(g)))))))))))) Input: foobar Output: f(o(o(b(a(r))))) Input: 1234567890 Output: 1(2(3(4(5(6(7(8(9(0))))))))) Input: code-golf Output: c(o(d(e(-(g(o(l(f)))))))) Input: a Output: a Input: 42 Output: 4(2) 像往常一样,我们所有的默认规则和漏洞都适用,并且以字节计的最短答案为准!

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

30
括号是否完全匹配?
您必须编写一个程序或函数,该程序或函数带有方括号,并输出该字符串是否完全匹配。您的程序应打印真实或虚假的值,并且IO可以采用任何合理的格式。 规则和定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 仅在以下情况下,字符串才被视为“完全匹配”: 每个字符都是一个括号, 每对支架都有正确的打开和关闭支架,并且顺序正确,并且 每个括号都匹配。 您可以假设输入将仅包含可打印的ASCII。 测试IO 以下是一些应返回真实值的输入: () [](){}<> (((()))) ({[<>]}) [{()<>()}[]] [([]{})<{[()<()>]}()>{}] 以下是一些应返回假值的输出: ( Has no closing ')' }{ Wrong order (<)> Each pair contains only half of a matched element (()()foobar) Contains invalid characters [({}<>)> …

19
吃豆人可以吃这串吗?
在游戏的街机版本中,吃豆人吃豆点。但是,在这个挑战中,他渴望字符串中的字母数字字符和标点符号。 您的任务是创建一个函数,该函数为吃豆人提供一个字符串,评估他是否可以吃它,然后返回其中包含吃豆人位置的字符串。 吃豆人(<)从左到右吃字符,每个字符在走时都留下下划线或空格,他的目标是从第一个位置1到最后一个位置+1: 1. <Pac 2. _<ac 3. __<c 4. ___< 但是,如果吃豆人的天敌幽灵将阻止他,如果他遇到单词“ GHOST”(不区分大小写)中的一个字母。您的函数在遇到ghost字符时应返回吃豆人所在位置的字符串: 1. <No! 2. _<o! 唯一可以击败幽灵的东西就是力量药丸。如果吃豆人在遇到鬼魂之前到达单词“ PELLET”(也不区分大小写)中的字母,他将吃掉鬼魂并继续移动,该小球将被耗尽。强力药丸可以堆叠(即,ppgg两个鬼魂都会被吃掉)。所述Ť字符存在既作为重影和小球,因此它可以忽略不计(如任何其他信处理,等a)。 1. <Pop 2. _<op 3. __<p 4. ___< 为了进一步说明,在字符串“吃豆人在这里输”中,发生以下操作: P <P, +1 Pellet (1 pellet) a <a c <c - <- M <M a <a n <n <[space] l <l, +1 …

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

4
枚举有效的Brainf ** k程序
Golunar / 一元是编码的所有有效的方式Brainfuck程序,但它不是一个枚举,因为最自然的号码不对应于一个有效的程序。 出于此挑战的目的,假设使用了无限的双倍磁带且没有任何注释,即Brainfuck程序在且仅当其仅由字符组成<>+-.,[]并且所有左括号和右括号都匹配时才有效。 例如,空的程序,,[+][-].,[>+<[--].]并且+[+[+][+[+]+]+]+.是有效的Brainfuck方案,同时][,并a[]没有。 任务 写接受的有效Brainfuck程序作为输入并返回的自然数(程序或函数1,2,3,...),有以下限制: 对于所有有效的Brainfuck程序,生成的输出必须不同。 对于每个自然数n,必须有一个有效的Brainfuck程序,当该程序作为输入提供时,会生成输出n。 附加规则 对于100个字节或更少字节的Brainfuck程序,您的程序或函数必须在一分钟内完成。 这意味着在匹配输入之前,您不能迭代所有有效的Brainfuck程序。 适用标准代码高尔夫球规则。

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

9
“便捷回文”检查器
如果您曾经尝试编写回文代码,那么您会知道会遇到多少括号。()()是不是回文,即使它还挺看起来像它应该的,而())(和()(都是回文和两个非常愚蠢的期待。如果不是这样的话,会不会很方便? 如果一个字符串等于其所有括号(),方括号()和花括号()颠倒时所得到的字符串,则该字符串很容易回文。没有其他特殊字符需要翻转。(有时会配对,但通常不会配对,因此被忽略了。)()[]{}<> 您的任务是用您的语言编写一个程序(接受STDIN的输入)或一个函数(接受单个字符串参数),该程序(a)当其参数为回文形式且给出不同的,一致的false时,给出一致的真值* (b)本身很方便回文。 例如,以下输入通常是回文的: racecar (a)(bb)(a) void main(int argc, *char[] argv) {} (vgra []rahc* ,cgra tni)niam diov 并且以下不是: non-palindrome A nut for a jar of tuna? (old [style] parens) )snerap ]elyts[ dlo( ingirumimusnocte)etconsumimurigni 除了解释器/编译器标志之外,您不得依赖任何外部状态(特定的文件名,目录结构,其他用户输入,Web访问等)。 另外,您不得使用“注释技巧”来注释掉或通过利用语言的注释功能来渲染未使用的某些代码。例如,不允许以下所有操作,因为它们包含可以安全地移除或销毁的非功能性部件(以失去回文性为代价): {some code} // {edoc emos} {some code} NB.BN {edoc emos} "n\" ;{edoc emos} ;"; …

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

21
(A [l(t [e(r)n] e)s] t)一个字符串!
Alternesting,是将一个字符串并嵌套在交替的括号中的行为。这是改变字符串的方式。 对于长度为N的字符串,请使用中心N个字符,并将其括在括号中。因此,如果我们的字符串是Hello world!(12个字符),我们将得到 (Hello world!) 然后,取下其余的中心n-2字符,并用方括号括起来。在这种情况下,中间的10个字符是ello world,因此下一个迭代是: (H[ello world]!) 只要字符串中间剩余两个以上的字符,请重复最后两个步骤,在()和之间进行交替[]。这是最后的步骤: (Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!) 由于最后一次迭代的中间只剩下两个字符,因此我们停止。我们的最后一个字符串是 (H[e(l[l(o[ w]o)r]l)d]!) 请注意中间的括号中如何有两个字符。当输入为偶数长度时会发生这种情况。如果输入为奇数长度(例如,Hello, world!添加了逗号),则中间将只有一个字符: (H[e(l[l(o[,( )w]o)r]l)d]!) 对于当今的挑战,您必须编写一个程序或函数,该程序或函数将字符串作为输入,并对其进行替换,然后输出新的字符串。您可以按照自己喜欢的任何合理格式进行输入和输出。输入将始终至少为一个字符长,并且仅包含可打印的ASCII。您还可以假定输入将不包含任何括号或方括号。对于传统语言来说,这没什么大不了的,但是对于某些深奥的语言来说,这可能会更容易。 与往常一样,这是一场代码高尔夫竞赛,因此请尝试使用您选择的语言做出尽可能短的答案。玩得开心! 测试IO #Input #Output "Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!) "PPCG" --> (P[PC]G) "Code-golf" --> (C[o(d[e(-)g]o)l]f) "4 8 15 16 23 42" --> …

30
加泰罗尼亚语数字
该Catalan数(OEIS)是自然数常常出现在组合的序列。 第n个加泰罗尼亚语数字是Dyck单词的数目(括号中的平衡字符串或方括号,例如[[][]];正式定义为使用两个字符a和b的字符串,这样从开头开始的任何子字符串的字符数都大于或等于number b个字符,整个字符串具有相同的a和b个字符),长度为2n。第n个加泰罗尼亚数字(对于n> = 0)也明确定义为: 从n = 0开始,前20个加泰罗尼亚数字为: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190... 挑战 编写一个完整的程序或函数,该程序或函数通过STDIN或可接受的替代方法获取非负整数n,并输出第n个加泰罗尼亚数字。您的程序必须至少对输入0-19有效。 输入输出 输入值 您的程序必须根据此meta post接收来自STDIN,函数参数或任何可接受的替代方法的输入。您可以将输入的数字读取为标准的十进制表示形式,一进制表示形式或字节。 如果(且仅当)您的语言无法从STDIN或任何可接受的替代方法中输入内容,则它可能从程序中的硬编码变量或适当的等效语言中获取输入。 输出量 您的程序必须根据此meta post将第n个加泰罗尼亚编号输出到STDOUT,函数结果或任何可接受的替代方法。您可以以标准的十进制表示形式,一元表示形式或字节形式输出加泰罗尼亚数字。 输出应包含适当的加泰罗尼亚语数字,并可以选择后面跟着一个或多个换行符。除了无法避免的语言解释器的恒定输出(例如问候语,ANSI颜色代码或缩进​​)以外,无法生成其他任何输出。 这并不是要找到最短的语言。这是关于寻找每种语言中最短的程序。因此,我不会接受答案。 在此挑战中,只要具有实现方式,就可以接受比挑战新的语言。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。除此之外,必须遵守所有代码高尔夫球的标准规则。大多数语言的提交都将以适当的预先存在的编码(通常为UTF-8)以字节计分。另请注意,允许使用内置函数来计算第n个加泰罗尼亚语数字。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes …

9
蛇化字符串
修饰后的字符串如下所示: T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt 你的任务 取一个字符串s和一个size n,然后输出连串的字符串。输入ThisIsAnExampleOfaSnakifiedString和3将产生上面的示例。 技术指标 s 只会在代码点33和126之间(含端点)包含ASCII字符(不包含空格或换行符)。 s 长度在1到100个字符之间。 n是一个整数,代表每个输出字符串段的大小。组成“蛇”中曲线的每一行字符(上/下或左/右)都是n字符长。有关示例,请参见测试用例。 n 介于3到10之间(含3和10)。 输出字符串始终开始指向下方。 每行上都可以使用尾随空格。 在输出末尾也可以尾随换行符。 不允许前导空格。 code-golf表示以字节为单位的最短代码获胜。 测试用例 a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

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

14
{卷数};
在深奥的编程语言Curly中,程序仅由花括号{}和分号组成;。尽管使用了不起眼的工具集,但是Curly的文字可以表示任何非负整数。但是,对于初学者来说,格式有点难读,所以让我们写一些代码为我们做转换。 数字格式 卷曲数是根据以下规则构造的: 添加分号会将数字加1。 用大括号括起来的数字乘以4。 花括号组可以嵌套但不能串联。大括号必须正确匹配。 一组花括号外的分号必须在之后,而不是之前。 为避免在分析时产生歧义,数字必须始终以大括号开头。 一些例子: {;;} 2*4 = 8 {{;};}; (1*4+1)*4+1 = 21 {};;; 0*4+3 = 3 (请注意,规则5表示数字0到3必须以一对空的花括号开头。) 还有一些无效的例子: {{;}{;;}} Curly brace groups side-by-side, not nested {;}} Unmatched brace {;{;}} Semicolon before curly-brace group ;;; Number does not start with curly brace 这是卷曲数字的BNF语法: <number> ::= "{" …

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.