Сегодня ваша задача - создать все возможные полные скобки выражения.
Ваш ввод представляет собой одну строку 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)
Наименьший код в байтах побеждает.
!
подходит регулярное выражение, так что делает ↑
, однако , ↑
не может быть частью входа , потому что это не для печати ASCII.
!
ли оператор? Как насчет↑
?