ブラケットを泡立ててください!


There
are
a few
questions
on this site
about balancing brackets, and checking whether
brackets are balanced. I propose it’s now time to use those
balanced brackets for something!

数学とプログラミングでは、角括弧は気泡のようなものであり、内部のすべてを内部のものすべてを隔離しているので、内部にあるものは平和の中で、外部のものは一つのオブジェクトしか見ることができません。しかし、括弧の文字列は1次元であり、通常、気泡は少なくとも2次元である。これは、気泡が互いに触れたり、他の気泡の内側と外側とを交差したりしない限り、気泡同士が自由に動くことを意味します。

チャレンジ

The input is a string of matched brackets of a single type,
either round (), square [], curly
{} or angle <>. It’s up to you what
kind you want your program to accept, and a program that only
accepts a single kind of brackets is accepted. (Imaginary bonus if
your program can handle any of them, massive imaginary bonus points
if it can handle all of them in the same input.) The input cannot
contain anything between the brackets, although trailing
whitespaces are allowed.

出力は、2つの同一の文字列を持たずに同じ構成のバブルを生成する括弧のすべての可能な再編成(任意の順序で、元の入力を含む)です。つまり、()()の入力では、場所を入れ替えることが技術的に2つの泡であっても、出力は()となります。大規模な想像上のボーナスの場合、
{} []()の入力はもちろん6種類の要素/文字列/行の出力につながります。

2つの気泡の構成は、気泡を動かすことによって、気泡を動かすことによって、他の気泡の内側から外側に、または外側から外側へ気泡を横切らせずに、一方を他方に作ることができるなら、「同じ」です。任意のノードのサブノードが順序付けされている場合、ネストされたかっこをツリーに合わせると(それぞれの一致したペアは1つのノードであり、一致するすべてのペアはサブノードであり、そこの一致するペアはそれぞれのサブノードです)バブルの単一の構成は、ノードが順序付けられていないツリーである。

文字列のリストや単一の文字のリスト、または何らかの空白を含む単一の文字列のリストを返すか、
stdout または stderr に出力するなど、
>各再編成の間に何らかの形の目に見える空白文字(最も一般的に改行またはスペース)を付けてください。

各再編成および後続のスペース、および実際の出力前後の改行/空のリスト要素の前に続くスペースが許可されます。入力時に受け入れるのと同じ種類の括弧を出力に使用する必要があります。ここで指定した括弧、改行、および空白以外に、使用する区切り記号は何も表示されません(見えない/ゼロ幅の文字を含む)。

スコアはコード内のバイト数です。各言語の最低数が勝ちます。想像上のボーナスを受け取ったかどうかは、通常か大かどちらかに注意してください。ただし、スコアには影響しません。実際のボーナスはバランスをとるのが難しいです。

入出力の例

例1:

入力:

()(())

出力:

()(())
(())()

例2:

入力:

(()())()()

出力:

(()())()()
()(()())()
()()(()())

例3:

入力:

(()(()))()

出力:

((())())()
()((())())
(()(()))()
()(()(()))
ベストアンサー

CJam, 18 bytes

{~{_{{B}%e!}&}:B~}

オンラインで試してみてください!

-2は Business
Cat
のおかげです。

[]
のみを含む文字列として入力を受け取ります。置換のリストを返します(空リストはCJamの空文字列と同じですので、
[] の代わりに "" になります)。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です