Questions tagged «balanced-string»

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

4
代码说明格式化程序
从本质上讲,成功提交高尔夫球规则的代码到处都是疯狂的符号。为了使提交的内容易于理解,许多代码高尔夫球手选择对代码进行解释。在他们的解释中,代码行变成了垂直分解图。 例如,如果这是我的代码: 1_'[3:~2@+]` 我可以创建的许多可能的图之一如下所示: 1 _' [ ] [3: ] [ ~ ] [ 2@ ] [ +] ` 目标 在此挑战中,您将编写一个说明自动格式化工具,该工具采用一行代码并创建一个可轻松添加说明文字的图表。 为了使此挑战更为有用,用户将能够通过提供格式字符串来指定每行的内容。格式化字符串将是第二行,仅包含字母A-Za-z,与程序长度相同。字母表示在解释中应打印程序字符的顺序。 这是一个没有任何类似于括号的格式的I / O示例: 123423 AabcBC 1 2 3 2 3 4 括号 如果程序中有多个字符具有相同的优先级,则该字符集将充当单个代码块(如果它们构成一个组)或一组括号(如果它们之间包含其他字符)。一般规则很简单: 直到更高优先级的所有其他字符都已经出现在图表上方的行上,字符才会出现在图表的一行中。 优先级相同的字符始终打印在同一行上。如果某个字符出现在一行上,则所有其他优先级相同的字符都出现在该行上。 一组具有相同优先级的字符将继续出现在每一行上,直到其所包围的所有其他字符都至少出现过一次为止。这允许“类似托架”的构造。如果bceab是优先级,则b字符将出现在第二行(它们是第二高的优先级),并将继续出现,直到所有cea字符都出现为止。如果优先级字符串为abcadeafga,则所有优先级字符串bcdefg都视为包含在其中,则所有4 as将继续出现,直到出现为止g。 更多格式要求 输出的所有行应具有相同的长度(输入行的长度),并在必要时用空格填充。输入程序行可能包含空格,尽管这些空格也将被赋予优先级字母。输出/输入上的尾随换行符是可选的。 计分 这是代码高尔夫,最少的字节数获胜。 例子 这是一段带有复杂格式的代码的注释示例。 1_'[3:~2@+]` abbcddeffgch 1 #highest priority …

9
Büidans
挑战很简单:编写一个程序或函数,当给定一个有限的非负整数时,该程序或函数将输出一个嵌套数组。 规则 您的代码必须为每个 0≤n≤2 31的整数生成唯一的有效嵌套数组。 必须在此范围内输出每个带有最多16个方括号的嵌套数组。(这并不意味着您的代码永远不会输出带有超过16个方括号的嵌套数组。) 您的代码可能会输出嵌套数组的字符串表示形式,而不是实际数组(带或不带逗号)。 一种可能的映射: 0 -> [] 1 -> [[]] 2 -> [[[]]] 3 -> [[], []] 4 -> [[[[]]]] 5 -> [[[], []]] 6 -> [[[]], []] 7 -> [[], [[]]] 8 -> [[], [], []] 9 -> [[[[[]]]]] etc. 计分 这是code-golf,因此以字节为单位的最短代码获胜。

8
脆弱的奎因
脆弱的奎因 脆弱的quine是满足通过删除单个字符来组成每个子字符串的属性的quine,在评估时会产生错误。 例如。如果您的程序asdf是木盒,那么它就很脆弱,以下程序必须出错: sdf adf asf asd 您的程序(及其所有子字符串)必须是完全确定性的,并且必须使用相同的语言。就此挑战而言,即使最终未产生错误,陷入无限循环(即无法终止)的程序也被视为“产生错误”。 存在标准漏洞,包括通常的quine限制(例如,无法读取自己的源代码)。 例如,print("foo")不是脆弱的。所有这些子字符串必须出错: rint("foo") pint("foo") prnt("foo") prit("foo") prin("foo") print"foo") print(foo") print("oo") print("fo") print("fo") print("foo) print("foo" 不会出错的是: print("oo") print("fo") print("fo") 因此它并不脆弱。 关于藜的重要说明 通过协商一致,任何可能的奎纳必须满足以下条件: 必须有可能识别程序的一部分,该部分对程序的不同部分进行编码。(“不同”表示两个部分出现在不同的位置。) 此外,木盒不得直接或间接访问其自身的源。 例 由于我认为JavaScript的function#toString是“正在读取其自身的源代码”,因此我不允许这样做。但是,如果我不想禁止它,那么这是JavaScript中的一个脆弱的方法: f=(n=b=`f=${f}`)=>(a=(n)==`f=${f}`,n=0,a)&(n!=b)?b:q 测试仪 这是一个程序,在给定程序源代码的情况下,它会生成所有必须出错的程序。 let f = (s) => [...Array(s.length).keys()].map(i => s.slice(0, i) + s.slice(i + 1)).join("\n"); let …
30 code-golf  quine  code-golf  date  code-golf  sequence  code-golf  sorting  file-system  code-golf  code-golf  ascii-art  hexagonal-grid  code-golf  string  arithmetic  code-golf  code-golf  code-challenge  source-layout  code-golf  ascii-art  cellular-automata  code-golf  string  arithmetic  balanced-string  code-golf  number  primes  code-golf  ascii-art  hexagonal-grid  code-golf  string  code-golf  string  code-golf  sequence  code-golf  ascii-art  code-golf  conversion  hexadecimal  code-challenge  restricted-source  code-golf  math  grid  code-golf  string  ascii-art  code-golf  random  minesweeper  code-golf  ascii-art  kolmogorov-complexity  board-game  scrabble  code-golf  ascii-art  code-golf  math  number-theory  decision-problem  code-golf  string  code-golf  natural-language  code-golf  internet  stack-exchange-api  code-golf  code-golf  conversion  code-golf  string  code-golf  math  arithmetic  code-golf  string  whitespace  code-golf  graphical-output  internet  code-golf  string  code-golf  string  random  permutations  code-golf  string  code-golf  string 

9
联锁支架
编写一个程序或函数,该程序需要一个八个字节的字符串,其中包含()[]{}<>以任何方式排列的每个字符之一,从而使四个相应的括号类型匹配。例如,]<([){}>输入无效,因为方括号不匹配(尽管所有其他方括号都匹配)。 打印或返回从0到的整数,该整数6表示四种括号类型的六种可能的配对中有多少对是互锁的。如果一种类型的支架恰好出现在另一种类型的支架之间,则认为支架类型对是互锁的。所以([)]和[(])互锁但是()[],[](),([]),和[()]不是。 以字节为单位的最短代码获胜。 输入/输出示例 ()[]{}<> : 0 ([{<>}]) : 0 <>{[]}() : 0 {<>([])} : 0 <(>)[{}] : 1 <[({)}]> : 1 [{<}]>() : 2 {<>([}]) : 2 <{(>})[] : 3 [(]<){>} : 3 <([>{)}] : 4 (<{[>})] : 4 (<[{)>}] : 5 <{[(>})] : 5 [{<(]}>) : 6 (<{[)>}] …

17
莫兹金数
第n个Motzkin数是从(0,0)到(n,0)的路径数,其中每个步骤的形式为(1,-1),(1,0)或(1,1),以及路径永远不会低于y = 0。 这是上述链接中n = 1、2、3、4的这些路径的说明: 所需序列为OEIS A001006。OEIS具有该序列的其他一些特征。 您将得到一个正整数n作为输入。您应该输出第n个Motzkin编号。 以下是莫兹金数1到10: 1, 2, 4, 9, 21, 51, 127, 323, 835, 2188 允许所有标准输入和输出方法。有标准漏洞。 这是代码高尔夫。最少的字节数获胜。

10
括号内为脚注
背景 LISP程序员已经占领了世界!括号已被声明为神圣字符,从现在开始,它们只能在LISP程序中使用。已经决定用脚注代替文学作品中的括号,并且为简化Markdown文本而使它自动化是您的工作。 输入值 您的输入是一个包含字母ASCII字符,空格和特殊字符的字符串,.!?()。它将不包含换行符或数字。括号将正确匹配。 输出量 您应将输入字符串中每对匹配的括号转换为脚注。发生这种情况如下: 将第一个匹配的括号对和括号之间的子字符串替换为一个以数字开头的运行编号,该编号1环绕在Markdown标记<sup>和之间</sup>。 附加到字符串的末尾 两条换行符 Markdown标签<sub>, 步骤1中的数字 空间, 括号之间的子字符串,以及 结束标记</sub>,按此顺序。 如果字符串中仍然有括号,请转到步骤1。 您的输出是结果字符串,可能带有尾随换行符。只要您的输出是正确的,就不必实现此精确算法。请注意,可能会有嵌套的括号;在这种情况下,我们的脚注将包含对其他脚注的引用。括号之间的子字符串也可以为空。有关示例,请参见下面的测试案例。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 如果你的语言本身不支持十进制数(咳嗽视网膜咳嗽),你可能会在另一个基地,包括二进制或一元的注脚号码; 但是,使用一元数会产生+ 20%的罚款。 测试用例 输入: This input contains no parentheses. 输出: This input contains no parentheses. 输入: This has (some) parentheses (but not so many). 输出: This has <sup>1</sup> parentheses <sup>2</sup>. <sub>1 …

30
聪明人的海市age楼
从前,我在阅读有关Quora的问题/答案 真的有没有计算机科学学位的程序员无法通过FizzBu​​zz测试 此代码是显而易见的答案 for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i 当然,FizzBu​​zz已经被打死了,但这并不是这个问题的实质。您会在评论中看到有人提到该答案很不错,因为很容易添加额外条件,例如将“ Jazz”打印为4的倍数。(我不同意。扩展此方案需要O(2 ** n )代码行。) 您的挑战是编写由同行判断的最漂亮的FizzJazzBuzz版本。 选民需要考虑的一些事项: 干 除法/模运算的效率 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

26
可括号的二进制数
如果您用无前导零的二进制形式表示某个正整数,并1用a 替换每个,(并0用a 替换每个)括号,那么所有括号会匹配吗? 在大多数情况下,它们不会。例如,9 1001以二进制形式出现,变成())(,其中仅前两个括号匹配。 但有时它们会匹配。例如,44为101100二进制,变成()(()),其中所有左括号都有匹配的右括号。 编写一个程序或函数,该程序或函数的正十进制整数为正,如果数字的双括号版本具有所有匹配的括号,则打印或返回真实值。如果不是,请打印或返回伪造的值。 以字节为单位的最短代码获胜。 相关的OEIS序列。 低于100的真实示例: 2, 10, 12, 42, 44, 50, 52, 56 低于100的虚假示例: 1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, …

5
鼓泡括号!
这里有几个问题,在这个网站如何去平衡支架,并检查是否括号是平衡的。我建议现在是时候将那些平衡的括号用于某些东西了! 在数学和程序设计中,方括号就像气泡,将内部的所有事物与外部的所有事物隔离开,以便内部的任何事物都可以安心地做它的事情,而外部的任何事物只能看到一个对象。但是,一串括号是一维的,而气泡通常至少是二维的。这意味着只要气泡从不相互接触或在任何其他气泡的内部和外部之间交叉,它们就可以自由地在彼此之间移动。 挑战 输入是一串匹配的单一类型的括号,可以是圆形(),正方形[],卷曲{}或尖角<>。取决于您希望程序接受哪种类型,是否接受仅接受一种括号的程序。(如果您的程序可以处理其中的任何一个,则有虚构的奖励;如果它可以在同一个输入中处理所有的它们,则有虚构的奖励点。)尽管括号中可以包含空格,但输入不能包含任何括号。 输出是那些括号的所有可能的重组(以任意顺序,包括原始输入),产生相同的气泡配置,没有两个相同的字符串。这意味着,输入()()为时()(),即使从技术上讲可以交换位置的两个气泡,其输出也只是。对于巨大的想象中的奖金,{}[]()意志的输入当然会导致输出6个不同的元素/字符串/行。 如果您可以通过在周围移动气泡而不让任何气泡从另一个气泡内部到外部或从外部到内部交叉而使另一个气泡相互“形成”,则两种气泡是“相同的”。如果您将嵌套括号比作树(每个匹配对都是一个节点,并且每个匹配对都是一个子节点,并且每个匹配对中又有一个子节点,依此类推),那么给定节点的子节点是有序的,那么气泡的单个配置就是一棵树,其中的节点是无序的。 任何合理的输出格式都可以,例如返回字符串列表或单个字符列表或带有某种空白的单个字符串列表,或者在两者之间使用stdout或stderr以某种形式的可见空白字符(最常见的是换行符或空格)进行打印每个重组。 每次重组的尾随空格以及在实际输出之前和之后的尾随和换行符/空列表元素的位置。您应该在输出中使用与输入相同的括号。除了此处指定的方括号,换行符和空格以及您使用的任何分隔符,均不应打印任何内容(包括不可见/零宽度字符)。 分数是代码中的字节数。每种语言的最低计数获胜。您可能会注意到您是否获得了想象中的奖励,无论是常规奖励还是巨额奖励,但这都不会影响您的分数。实际的奖金太难平衡了。 输入输出示例 范例1: 输入: ()(()) 输出: ()(()) (())() 范例2: 输入: (()())()() 输出: (()())()() ()(()())() ()()(()()) 范例3: 输入: (()(()))() 输出: ((())())() ()((())()) (()(()))() ()(()(()))

12
扩大压缩的脑裂
此挑战是2018年4月LotM挑战以及Brain-flak 2岁生日的一部分 我在考虑编码Flask程序的最有效方法是什么。由于只有8个有效字符,因此显而易见的事情是将每个字符映射到3位序列。这肯定是非常有效的,但是仍然很多余。我们可以利用脑剥落代码的某些功能来缩短编码。 全部由2个匹配的方括号表示的nilads实际上充当单个信息单元,而不是2。如果我们用单个字节字符替换每个方括号,这将使编码小得多而不会丢失任何数据。 这个不太明显,但是monad 的结束字节也是多余的。您认为您可以猜出'?'以下代码段中的字符代表什么吗? {(({}?<>?<>? 如果我们假设输入的内容是有效的大脑标志,那么每个问号只有一个选项。这意味着我们可以明确地使用close monad字符来表示每个结束括号。这具有使字符集保持较小的附加好处,如果我们想使用霍夫曼编码,这将大有帮助。由于接近的monad字符很可能会成为最常见的字符,因此可以用一点来表示,这非常有效。 这两个技巧将使我们通过以下算法来压缩脑筋代码: 用替换monad的每个右括号|。换句话讲,将每个未在开头匹配之前的右方括号替换为小节。所以... (({})<(()()())>{}) 会成为 (({}|<(()()()||{}| 用它的封闭支架替换所有的尼拉丁。因此,其中没有任何内容的匹配方括号将使用以下映射: () --> ) {} --> } [] --> ] <> --> > 现在我们的最后一个示例变为: ((}|<()))||}| 删除尾随|字符。因为我们知道小节的总数应等于({[<字符总数,所以如果末尾缺少小节,我们可以推断出它们。因此,例如: ({({})({}[()])}) 会成为 ({(}|(}[) 今天的挑战是逆转这一过程。 给定一串只包含字符的压缩后的Flask,将其(){}[]<>|扩展为原始的Flak代码。您可以假设输入将始终扩展为有效的大脑标志。这意味着输入的前缀中|最多不会包含({[<字符。 输入将不包含结尾|字符。这些必须从上下文中推断出来。 与往常一样,您可以提交完整的程序或函数,并且输入/输出格式是允许的。并且由于这是一个代码高尔夫,因此您的代码将按源代码的长度(以字节为单位)进行评分,分数越小越好。 测试用例 这是一些测试用例。如果您想要更多,可以使用此python脚本和Brain-Flak Wiki生成自己的测试用例,这是大多数测试用例的来源。 #Compressed code #Original code ()))) (()()()()) ([([}()||||(>||{(})|>|}{((<}|||>}|}>} ([([{}(())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{} ({(}|(}[)|||} ({({})({}[()])}{}) …

7
生成Brainf *** NOP
有时,在编写脑力激荡的代码时,您会感到需要使其长度超过鼓励调试的时间。您可以通过><在其中放一个来做到这一点,但是那有什么乐趣呢?您将需要更长或更短的NOPey,以使任何人都无法阅读您的代码。 快速入门Brainfuck Brainfuck是UrbanMüller于1993年创建的一种深奥的编程语言,以其极简主义而著称。(维基百科) Brainfuck是一种基于八种命令的语言:+-><,.[]。该代码在图灵机之类的东西上运行:可以在上面更改值的无限磁带。在此挑战中,我们将重点关注前四个: + increment the value at the pointer - decrement the value at the pointer > move the pointer right < move the pointer left 脑干NOP 脑干NOP是一系列脑干角色,当从任何状态执行时,脑筋都不会改变状态。它们由上述四个字符组成。 挑战 面临的挑战是编写一个程序或函数,当执行该程序或函数时,将生成给定长度的随机性NOP。 输入项 您将收到一个非负偶数整数作为输入n。(NOP不可能是奇数n。) 输出量 您将输出一个长度为的随机性NOP n。 规则 NOP的定义:在将程序的输出插入到Brainfuck程序的任何位置时,该程序的行为不得以任何方式改变。换句话说,它不得更改解释器的状态。 请注意,例如+>-<,这是不正确的,因为它更改了两个单元格的值而没有将它们改回来。发布前,请先测试您的解决方案。 另请注意,这+>-<->+<是一个NOP,仅通过删除就不能将其减少为零>< <> +- -+。因此,您不能使用仅将它们彼此插入的算法。 长度的每个有效NOP n必须有非零的机会出现在输出中。但是,分布不必一定是统一的。 讨论中的“脑干”解释器具有无限精确的任意精确细胞带。也就是说,您可以无限地向两个方向移动,并无限地增加/减少每个单元格。 该程序必须在1分钟内在n我的计算机上完成= 100,因此不能生成所有可能的NOP并选择一个。 如果输入的内容无效(非整数,负数,奇数等),则可以执行任何您想做的事情,包括崩溃。 …

25
检测完美配对
让我们有一个函数,它接收一个字符串并删除所有成对的相邻相同字符。例如fff f(abbbacc)=abaf(abbbacc)=abaf(a\color{red}{bb}ba\color{red}{cc}) = aba 请注意,当两对重叠时,我们只会移除其中一对。 如果重复应用最终产生空字符串,我们将调用完美配对的字符串。例如,上面的字符串不是完美配对的,因为如果再次应用,我们仍然会得到。然而,像这样的字符串是完美配对的,因为如果我们应用三次,我们将得到空字符串abbbaccabbbaccabbbaccfffabaabaabaeabbccaddeeabbccaddeeabbccaddefff f(eabbccadde)=eaaef(eabbccadde)=eaaef(ea\color{red}{bbcc}a\color{red}{dd}e) = eaae f(eaae)=eef(eaae)=eef(e\color{red}{aa}e) = ee f(ee)=f(ee)=f(\color{red}{ee}) = 您的任务是编写完美配对的计算机代码,该代码采用一个字符串(可打印ASCII),并确定其是否完全配对。源的字节串本身必须是完美配对的字符串,尽管您的代码不必一定限于可打印的ASCII。 您可以输出两个不同的值:一个用于输入完美配对的情况,另一个用于不配对的情况。 这是一个代码问题,因此答案将按其来源的字节大小进行评分,而字节越少越好。 测试用例 abbbacc→Falseabcba→Falseabab→Falseabbbaabacc→Trueeabbccadde→Truebbbb→Trueabbbacc→Falseabcba→Falseabab→Falseabbbaabacc→Trueeabbccadde→Truebbbb→Trueabbbacc \rightarrow \mathrm{False}\\ abcba \rightarrow \mathrm{False}\\ abab \rightarrow \mathrm{False}\\ abbbaabacc \rightarrow \mathrm{True}\\ eabbccadde \rightarrow \mathrm{True}\\ bbbb \rightarrow \mathrm{True}

25
Golf A括号匹配算法
您将得到一个字符串s。保证字符串具有相等的且至少为[s和]s。还可以保证括号是平衡的。该字符串也可以包含其他字符。 目的是输出/返回元组列表或包含每个[和]对的索引的列表列表。 注意:字符串为零索引。 示例: !^45sdfd[hello world[[djfut]%%357]sr[jf]s][srtdg][]应返回 [(8, 41), (20, 33), (21, 27), (36, 39), (42, 48), (49, 50)]或与此等效的东西。元组不是必需的。列表也可以使用。 测试用例: input:[[asdf][][td([)ty54g% ]hg[[f]u][f[[jhg][gfd]sdf]sdfs]ghd]fr43f] output:[(0, 62),(1, 6), (7, 8), (9, 56), (13, 22), (25, 30), (26, 28), (31, 52), (33, 47), (34, 38), (39, 43)] input:[[][][][]][[][][][[[[(]]]]])) output:[(0, 9), (1, 2), (3, 4), (5, …

22
递归字符串替换
任务 编写一个程序或函数,给出给定的三个字符串A, B, C会生成一个输出字符串,其中Bin的每个实例A都已用递归替换C。递归替换表示重复替换,其中在每一步中Bin的所有不重叠实例A(从左到右贪婪地选择)都替换为,C直到B不再包含在中A。 输入输出 您可以对I / O使用任何默认方法。 字符串将仅包含可打印的ASCII字符(并且可以包含任何一个)。 B永远不会是一个空字符串,而A并且C可能是。 字符串应被视为纯文本,例如,您不能将其B视为Regex模式。 输入的某些组合永远不会终止。在这种情况下,您的程序可以执行任何操作。 测试用例 这些格式为: A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty string} llllrrrr/lr/rl rrrrllll +-+-+-+/+-+/+ + ababababa/aba/bada badabbadbada abaaba/aba/ab abb ((())())())/()/{empty string} ) 不会终止的示例: grow/ow/oow loop/lo/lo
25 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 

9
对字符串取消括号
给定正确括号化的字符串作为输入,输出匹配括号内(或所有括号外)的所有非空子字符串的列表,并删除嵌套括号。每个子字符串应为完全相同的匹配括号中的字符序列。子串应按深度顺序列出,而相同深度的子串应按它们在字符串中出现的顺序列出。假定输入总是正确地加上括号。 您可以假定输入仅包含小写的ASCII字母和括号。 您的答案应该是一个函数,当给定一个字符串时,它返回一个字符串列表。 例子: 'a(b)c(d)e' -> ['ace', 'b', 'd'] 'a(b(c)d)e' -> ['ae', 'bd', 'c'] 'a((((b))))' -> ['a', 'b'] 'a()b' -> ['ab'] '' -> [] 'a' -> ['a'] '(((a(b)c(d)e)f)g)h' -> ['h', 'g', 'f', 'ace', 'b', 'd'] 'ab(c(((d)ef()g)h()(i)j)kl)()' -> ['ab', 'ckl', 'hj', 'efg', 'i', 'd'] 最少的字节数获胜。

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.