Hari ini tantangan Anda adalah menghasilkan semua tanda kurung penuh ekspresi yang mungkin.
Input Anda adalah satu baris ASCII yang dapat dicetak yang berisi satu atau lebih istilah yang dipisahkan oleh operator. Input mungkin juga mengandung spasi - Anda harus mengabaikannya. Istilahnya adalah [a-zA-Z0-9]
, operator [^ ()a-zA-Z0-9]
. Anda dapat mengasumsikan bahwa input selalu valid.
Keluarkan semua cara yang mungkin untuk sepenuhnya mengurung ekspresi yang diberikan, dipisahkan oleh baris baru dengan baris tambahan opsional.
Apakah tidak :
- Istilah kurung - hanya kurung di sekitar operator.
- Susun ulang persyaratan.
- Keluarkan spasi apa saja.
Contoh input / output:
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)
Kode terkecil dalam byte menang.
!
cocok dengan regex, demikian juga ↑
, namun ↑
tidak dapat menjadi bagian dari input karena ASCII tidak dapat dicetak.
!
seorang operator? Bagaimana dengan↑
?