明天将迎来一岁高龄!为了纪念它的生日,我们举办了一个PPCG风格的生日聚会,几个用户在其中发布与大脑flak相关的问题!帮助我们庆祝!:)
Brain-flak是我写的一种深奥的语言,其中所有命令都是方括号,并且所有方括号必须完全匹配。借用我自己的定义:
出于此挑战的目的,“括号”是以下任意字符:
()[]{}<>
。如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配”
() []{}
或者,如果其中的每个子元素也都匹配。
[()()()()] {<[]>} (()())
子元素也可以嵌套在几层深处。
[(){<><>[()]}<>()] <[{((()))}]>
仅在以下情况下,字符串才被视为“完全匹配”:
每个字符都是一个括号,
每对支架都有正确的打开和关闭支架,并且顺序正确
为了庆祝flask的第一个生日,今天的挑战是要采取一组不平衡的括号,并确定要使其成为有效flask所需的操作类型。
例如,
((
不是有效的脑筋代码,但是如果我们附加))
它,它将变为(())
,它是完全平衡的,因此是有效的脑筋。这使得此输入可追加。同样,
>}
无效,但是我们可以{<
在make之前添加{<>}
,这是有效的。这使该输入成为可前置的。一些输入稍微复杂一些。例如,
)][({
不能仅通过追加或前置来使之有效。但是可以通过在前面[(
和后面添加来使它有效})]
。因此,这种投入既是prependable和追加。最后,通过附加或前置的任何组合都不能使某些输入成为有效的大脑标志。例如,
(>
永远不能使之有效。(正在<
创建<(>
,并且正在)
创建(>)
,这两个都无效)因此,此输入既不可添加也不可添加。
对于当今的挑战,您必须编写一个程序或函数,该程序或函数带有方括号,并确定该字符串是否为
appendable
prependable
both
neither
您可以选择用于每种情况的值。例如,输出1, 2, 3, 4
,或'a', 'p', 'b', 'n'
,或1, 'foo', 3.1415, -17
,等等。只要每个输出都是不同且一致的,就可以了。你必须但是,明确指定哪种输出对应于哪种情况。
您可以以最方便的格式返回此值(例如,从函数返回,打印到STDOUT,修改参数,写入文件等)。
您可以假设输入永远不会是有效的大脑或空的。
例子
以下所有输入都是可添加的:
))
(((()()())))}
)>}]
()[]{}<>)
这些都是可附加的:
(({}{})
((((
([]()())(
{<<{
这些都是两个:
))((
>()[(()){
>{
这些都不是:
)(}
{(((()()()))>
[}
((((((((((>
((((((((((<>()]
像往常一样,这是code-golf,因此存在标准漏洞,并且以字节为单位的最短答案为胜!
这种挑战在脑筋急转弯中尤其困难,因此最大的布朗尼指向脑筋急转弯中的任何答案。:)
][
是不是追加了,一样没事可以追加可以使它有效。同样,它也不是先决条件。是...“不可插入”!您可以将其插入字符串以使整个有效Brainbrak有效。
You can assume that the input will never be valid brain-flak or empty.
maximum brownie points
我认为,提供最高的布朗尼积分和cookie不仅比布朗尼积分更能激发Brain-Flaking这一挑战,因为我认为在任何语言中这都不是琐碎的事情,更不用说Brain-Flak了。:P