Hôm nay, thách thức của bạn là tạo ra tất cả các dấu ngoặc đơn có thể có của một biểu thức.
Đầu vào của bạn là một dòng ASCII có thể in được chứa một hoặc nhiều thuật ngữ được phân tách bởi các toán tử. Đầu vào cũng có thể chứa khoảng trắng - bạn phải bỏ qua những khoảng này. Một thuật ngữ là [a-zA-Z0-9]
, một nhà điều hành là [^ ()a-zA-Z0-9]
. Bạn có thể cho rằng đầu vào luôn hợp lệ.
Xuất ra tất cả các cách có thể để ngoặc đơn hoàn toàn biểu thức đã cho, được phân tách bằng các dòng mới với một dòng mới tùy chọn.
Do không :
- Các thuật ngữ ngoặc đơn - chỉ ngoặc đơn xung quanh các toán tử.
- Sắp xếp lại các điều khoản.
- Đầu ra bất kỳ không gian.
Ví dụ đầu vào / đầu ra:
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)
Mã nhỏ nhất trong byte thắng.
!
phù hợp với regex, do đó ↑
, ↑
không thể là một phần của đầu vào vì nó không thể in được ASCII.
!
một nhà điều hành? Thế còn↑
?