Questions tagged «balanced-string»

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

4
清楚地加上括号的APL列车
在APL中,您可以编写默认的函数,称为trains。他们的工作方式与这一挑战无关。以下是将它们⍴作为函数进行分组的不同方法: ⍴ -> ⍴ ⍴⍴ -> ⍴⍴ ⍴⍴⍴ -> ⍴⍴⍴ ⍴⍴⍴⍴ -> ⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴⍴)) ... 顺序保持不变。程序是,只要严格存在3个以上的功能,则将后3个功能分组为一个功能。如果遇到嵌套火车,我们先将其括起来,然后再继续。这是适用于的过程⍴⍴⍴⍴⍴⍴: Step 0: ⍴⍴⍴⍴⍴⍴ There are strictly more than 3 functions, repeat. Step 1: ⍴⍴⍴(⍴⍴⍴) There are strictly more than 3 functions, repeat. Step 2: ⍴(⍴⍴(⍴⍴⍴)) There are 3 or …

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

10
一个简单的数字系统
让我告诉您一个简单的数字系统。(我为此挑战而弥补) 该系统所包含的功能(),[],{},和<>。 1。 () 如果()未提供任何参数,则结果为0。 当()给定一个或多个参数时,它将求和为参数的总和。 2。 [] 如果[]未提供任何参数,则结果为-1。 当[]给定一个或多个参数时,它将得出第一个参数减去其他参数的总和。 3。 {} 如果{}未提供任何参数,则结果为1。 当{}给定一个或多个参数时,它将求值为这些参数的乘积。 4。 <> 如果<>未提供任何参数,则结果为1。 当<>给定一个或多个参数时,它将求出第一个参数整数除以其他参数的乘积。 你的任务 在这个简单的数字系统中,给定一个包含有效数字的字符串(这意味着括号是平衡的,不能除以0等),请打印其值。 测试用例 () -> 0 (()()) -> 0 ([][]) -> -2 ({}<>) -> 2 ({}[]) -> 0 [] -> -1 [[][]] -> 0 [()<>] -> -1 {()} -> 0 {([]<>)} -> …

9
平衡三连音括号
“三重括号”(我为应对这一挑战做了准备)是以下之一: (...+...) [...:...] {...|...} <...-...> 平衡的三连音括号字符串(简称BTBS)可以是空字符串,两个BTBS串联在一起,也可以是上述...三连音括号之一,每个括号用BTBS代替。 您的任务是编写一个程序或函数,以检查仅由一个字符串组成的字符串是否(+)[:]{|}<->平衡。最短的代码胜出。 例子 您的程序应为以下字符串返回true: (+)(+)(+) [[[:]:]:(+(+))]{<->|<(+)->[:]}(+) <<<<<<<<<<<<->->->->->->->->->->->-> {|(+[:<-{|(+[:<->])}>])} [[[:]:[:]]:[[:]:[:]]] {[:](+)|<->{|}}[(+)<->:{|}(+)] 您的程序应为以下字符串返回falsy: :[ <|> (+(+) [:][:](+[[:]):] {|{|{|(+{|{|{|}}}}}+)}[:]{|} {{||}} <<->-<->-<->> [(+):((+)+)+(+(+))] <<<<<->->->->->->

8
写一个脑力激荡的经典口译员!
Brain-Flak(Brainf ** k和Flak-Overstow之间的交叉)是一种基于堆栈的深奥语言。自发布此挑战以来,该语言已得到发展和更新,但是该语言的第一个修订版被称为“经典大脑”。 您必须编写一个程序或函数,该程序或函数需要一串Brain-Flak经典代码并对其进行评估。它还将使用(可能为空)整数列表。有Brain-Flak经典程序的输入。 语言 Brain-Flak具有两个堆栈,分别称为“左”和“右”。活动堆栈从左侧开始。如果弹出或查看一个空堆栈,它将返回0。没有变量。程序启动时,每个输入将按顺序推入活动堆栈(以便最后一个输入位于堆栈顶部)。 Brain-Flak程序中唯一有效的字符是()[]{}<>,并且必须始终保持平衡。如果有无效字符,或者括号不匹配,则会出现不确定的行为。任何有效的东西。 函数有两种类型:Nilads和Monads。一个nilad是一个函数,0参数。这是所有的尼拉德人: () +1。 [] -1。 {} 弹出活动堆栈。 <> 切换活动堆栈。 在评估它们时将它们串联在一起。因此,如果我们在活动堆栈的顶部有一个“ 3”,则此代码段: ()(){} 将评估到1 + 1 + active.pop()将评估为5。将<>评估为0。 单子组采用一个参数,即一大堆Brain-Flak代码。这是所有单子: (n) 在活动堆栈上按“ n”。 [n] 将'n'打印为int和换行符。 {foo}当active.peek()!= 0时,执行foo。评估为0¹。 <foo> 执行foo,但将其评估为0。 这些函数还将返回它们内部的值,因此 (()()()) 将推3和 [()()()] 将打印3但 [(()()())] 将打印并推送3。 当程序执行完毕后,活动堆栈上剩余的每个值都将打印为整数,并在其之间使用换行符。其他堆栈上的值将被忽略。 规则: 您的程序必须支持(-128,127)范围内的数字,并且堆栈大小至少为255。如果支持更大,则更好。 下溢/上溢未定义。 样本IO: 空程序: 输入:无 输出:无 加成。资源: …

9
填写支架
普通括号((),[],<>和{})是很好的和明确的,但有人认为这将是使用非括号字符作为括号是一个好主意。这些字符|和和"是不明确的。例如做 """" 相当于 (()) 要么 ()() 这是不可能的。 例如,当您混合使用类型不明确的方括号时,事情开始变得有趣起来 "|""||""|" 可能是以下任何一个 ([(([]))]),([()[]()]),([()][()]) 任务 您的任务是获取由歧义字符组成的字符串,并输出作者可能想要的所有可能的平衡字符串。 更具体地讲,你的输出可以做出替换所有的字符串平衡|与任一[或]并"用两种(或)。您不应两次输出任何平衡的字符串。 IO 作为输入,您应该采用由|和组成的字符串"。如果您想选择比其他两个不同的角色|,并"担任你可以这样做替代品。您应该输出一个平衡字符串的容器。您可以选择更换[],并()在输出与任何其他两种支架对((),[],<>或{})你的愿望。您的输出格式应在每次运行中保持一致。 计分 这是代码高尔夫球,因此答案将以字节计分,而字节越少越好。 测试用例 "" -> ["()"] "|"| -> [] ||| -> [] """" -> ["(())","()()"] ""|| -> ["()[]"] "|"||"|" -> ["([([])])"] "|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

30
消失的元素
给定一个字符串S和一个索引列表X,S通过删除每个索引处的元素来进行修改,并将S结果作为的新值S。 例如,给定S = 'codegolf'和X = [1, 4, 4, 0, 2], 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

25
一个简单的模式
输入: 您选择的输入格式中的两位数字(我们称它们为m和n)和两个字符(我们称其为a和b)。 输出: 对于演练,请假装m=2, n=5, a='a', b='b'。 您的输出将是根据四个输入构建的字符串。让我们result用value 调用字符串""。首先,连击a到result m时间,所以串连a到result 2倍。result现在等于aa。其次,连击b到result m时间,所以串连b到result 2倍。result现在等于aabb。最后,如果结果已经比更长n,请截断result它,使其具有length n。否则,继续交替使用m的长度运行a,并b直到result有长度n。最终result是aabba,它有长度5。 测试用例: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = 4, n …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

4
编写一个程序,以防括号在空格导致停滞的情况下用空格替换
您是项目经理。有一天,您的一名程序员发疯了(不是您的错),并在代码库中提取了所有表达式,并在其中添加了随机括号,然后当场退出,对您的不称职(也不是您的错)表示愤慨。这将是一个简单的修复,但是由于某种原因,您没有使用修订控制(完全不是您的错)。出于某种原因,其他程序员都不想遍历每个表达式来修正不匹配的括号(顺便说一句,这不是您的错)。这些天的程序员,您自己想。您将必须自己做。惊恐的事件!这样的任务本该在你下面... 输入将是一行,其中将包含多个左括号(( [ {)和右括号() ] })。它还可能但不总是包含注释(/* */)和字符串文字(" "或' ')以及各种数字,字母或符号。 至少会有一个括号(在注释或字符串文字之外)没有相反的对应关系(在注释或字符串文字之外)。例如,}没有{先验的错误。另一个例子:一个(没有)事后的。您的程序将以空格替换使括号匹配所需的最小括号数。 例子: (4 + (2 + 3))]==> (4 + (2 + 3)) (末尾方括号) ][][[]]==> [][[]](开始方括号) ("Hel(o!"))==> ("Hel(o!") (末尾括号) ( /* )]*/==> /* )]*/ (末尾括号) {()]==> () (大括号和方括号) 可以从最方便的方式(STDIN,命令行参数,从文件读取等)获取输入。 如果使用相同的清除次数来解决不匹配问题的方法不止一种,则可以接受。 括号中只会有不匹配的内容。字符串文字和注释将始终正确形成。 标题来自此SO线程 注释中永远不会有任何报价,报价中的报价,注释中的注释或报价中的注释。 这是代码高尔夫,因此最少的字节数获胜。如果规范不明确,请在注释中提出问题。

4
完成懒惰的括号
键盘上的括号已全部用完,我想尽可能避免使用它们。您的挑战是通过在每行之前和之后添加括号来平衡包含括号的行。 这类似于TI-Basic的自动括号和字符串闭包(即Output(1, 1, "Hello, World!)。它还可以保存程序中的宝贵字节! 输入示例: This line has no parentheses alert(Math.max(1, 2 1+1)*2).toString() function() { alert('Hello, World!'); })( 示例(可能)输出: This line has no parentheses alert(Math.max(1, 2)) ((1+1)*2).toString() (function() { alert('Hello, World!'); })() 规格: 对于每一行输入, 根据需要在行的开头添加尽可能多的开放括号,并在行的末尾添加封闭括号以平衡行中的括号 “余额”的定义是: (和)行中的金额相同 对于从字符串开头开始的每个子字符串,此子字符串的结束括号不得多于开头括号 例如,(foo))(bar不平衡是因为(foo))闭括号比开括号多 如果需要,可以添加多余的括号,如果这样会使代码更短 您无需担心字符串文字或类似的东西,假设所有括号都需要平衡 输出每行且括号括起来 这是代码高尔夫球,所以最短的代码(以字节为单位)将获胜!

19
验证Brainfuck程序
Brainfuck的另一个解析问题,但是这次……有所不同。 您正在开发Brainfuck程序的公司Infinite Monkeys Incorporated中工作,以解决各种有趣的问题(偶然地,至少是偶然,毕竟该公司创建了随机程序)。但是,看来仅执行Brainfuck的快速图灵机存在语法错误的小而昂贵的问题-生成一个,计算机便爆炸了。这可能是设计缺陷,但没有人费心去寻找它为什么会发生。 由于Turing机器(尤其是快速的机器)非常昂贵(毕竟它们具有无限的RAM成本),因此最好在执行代码之前确保程序没有任何语法错误。您的公司将要运行大量代码,因此手动验证将不起作用。编写一个程序,该程序读取用于Brainfuck的STDIN代码,如果程序有任何语法错误(例如],由于没有匹配,则是语法错误),则退出状态将退出状态设置为0(错误)以外的任何值[。如果程序完全正常,则以退出状态设置为0退出。 确保您的程序正确注意到涉及的错误[]。您不希望其他计算机爆炸,对吗?哦,请确保它尽可能的短-您的老板为简短的程序付费(因为他认为这些程序很快,还是有些东西)。哦,您不必在Brainfuck中编码(实际上,您不能,因为Brainfuck不支持退出代码),您的代码将在普通计算机上运行。 因此,正如您所看到的,您的工作是检查Brainfuck程序是否“有效”(具有成对的[]符号)。请注意,Brainfuck程序可以使用以外的其他字符[],因此请勿仅因为它具有其他命令而拒绝该程序。最小的代码获胜,但无论如何,您可能会更在乎投票。

10
生成所有长度为n的大括号
大括号字符串定义为由*()[]大括号正确匹配的字符组成的字符串: [brace-string] ::= [unit] || [unit] [brace-string] [unit] ::= "" || "*" || "(" [brace-string] ")" || "[" [brace-string] "]" 这是一个有效的大括号字符串: ((())***[]**)****[(())*]* 但是这些不是: )( **(**[*](**) **([*)]** 您的任务是编写一个程序(或函数),给定一个正整数n,该程序将一个数字作为输入并输出(或返回)所有有效的length括号n。 技术指标 您可以按任何顺序输出字符串。 您可以将其输出为列表或由不同字符分隔的字符串。 您的程序必须正确处理0。可能有1个长度为0的大括号字符串,即空字符串""。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 0. 1. * 2. ** () [] 3. *** ()* []* (*) [*] *() *[] 4. **** …

23
使用给定的括号缩进字符串
给程序以下输入: 块开始字符列表 块结束字符列表 要格式化的字符串 使用以缩进的两个字符集分隔的块来格式化字符串。 格式化是在每个级别上用两个空格完成的,并且括号的放置如下例所示。您可以假定开头和结尾字符集是不相交的。 例如{[(<,}])>作为和作为开始和结束字符集以及以下字符串: abc{xyz{text[note{comment(t{ex}t)abc}]}} 预期以下输出: abc { xyz { text [ note { comment ( t { ex } t ) abc } ] } } 您可能没有对“括号”字符列表进行硬编码。但是,没有指定输入方式。您可以根据需要使用命令行参数或通过标准输入。

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.