Bugün meydan okuman, bir ifadenin tüm olası tam parantezlerini üretmektir.
Girişiniz, operatörler tarafından ayrılmış bir veya daha fazla terim içeren yazdırılabilir ASCII'nin tek bir satırıdır. Girişte boşluk da olabilir - bunları yok saymanız gerekir. Bir terim [a-zA-Z0-9]
, bir operatör [^ ()a-zA-Z0-9]
. Girişin her zaman geçerli olduğunu varsayabilirsiniz.
Belirli bir ifadeyi yeni satırlarla ayırarak, verilen ifadeyi tamamen parantez içine almak için tüm olası yolları çıktılayın.
Do not :
- Parantez boyutları - işleçlerin çevresinde yalnızca parantez içine alın.
- Şartları yeniden sıralayın.
- Herhangi bir boşluğun çıktısını alın.
Örnek giriş / çıkış:
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)
Bayt cinsinden en küçük kod kazanır.
!
normal ifadeye uyar ↑
, ancak ↑
ASCII yazdırılamadığından girdinin bir parçası olamaz.
!
bir operatör? Ne olmuş↑
?