Сьогодні ваше завдання полягає в тому, щоб створити всі можливі повноцінні дужки виразів.
Ваш вхід - це один рядок для друку 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.
!
оператор? Про що↑
?