今日、あなたの課題は、式のすべての可能な完全な括弧を生成することです。
入力は、演算子で区切られた1つ以上の用語を含む1行の印刷可能なASCIIです。入力にはスペースも含まれる場合があります。これらは無視する必要があります。用語は[a-zA-Z0-9]
、演算子は[^ ()a-zA-Z0-9]
です。入力は常に有効であると仮定することができます。
指定された式を完全に括弧で囲むすべての可能な方法を出力し、オプションの末尾の改行で改行で区切られます。
しないでください:
- 用語を括弧で囲む-演算子の周りのみを括弧で囲みます。
- 用語を並べ替えます。
- スペースを出力します。
入出力の例:
N
N
a * b
(a*b)
x_x_0
(x_(x_0))
((x_x)_0)
a * b|c|d
(a*(b|(c|d)))
(a*((b|c)|d))
((a*b)|(c|d))
((a*(b|c))|d)
(((a*b)|c)|d)
バイト単位の最小コードが優先されます。
@Optimizer演算子と見なされるものの正確な正規表現をリストしました。
—
orlp
!
正規表現に合う、そう↑
しかし、↑
それは印刷可能なASCIIではないため、入力の一部にすることはできません。
うん、いいよ。したがって、用語以外は演算子です
—
オプティマイザー
では、用語と演算子は常に1文字の長さですか?
—
user81655
ここに必須のLISP関連のしゃれを挿入します
—
cat
!
オペレータ?どう↑
?