Module: Trình tự khung chính xác (PRS)


Problem

3 /6


Tilda-omega-lambda-phép tính

Theory Click to read/hide

Trong trường hợp có nhiều loại dấu ngoặc, mọi thứ trở nên phức tạp hơn một chút. Chúng tôi tạo một ngăn xếp để hoạt động như biến số dư đó. Điều này là cần thiết vì dấu ngoặc đơn không thể chồng lên nhau. Khi chúng ta đi qua một dòng và gặp một dấu ngoặc đơn mở, chúng ta đẩy nó vào ngăn xếp. Khi chúng tôi gặp một dấu ngoặc nhọn đóng, chúng tôi cố gắng bật dấu ngoặc mở của loại đó ra khỏi ngăn xếp. Nếu một dấu ngoặc nhọn thuộc loại khác nằm trên ngăn xếp, trình tự không hợp lệ. Nếu ngăn xếp không trống ở cuối, trình tự cũng không hợp lệ. 

Problem

Tilda-omega-lambda-calculus là một bước phát triển sáng tạo hơn nữa của "British Scientist, Inc" trong lĩnh vực lập trình chức năng. Sự khác biệt của nó so với phép tính omega-lambda chỉ ở khả năng đặt dấu ngoặc vuông và ngoặc nhọn. Dấu ngoặc hình con voi cũng đã được lên kế hoạch, nhưng công ty đã thất bại trong việc thay đổi tiêu chuẩn UNICODE. 
Đầu vào là biểu thức dấu ngã-omega-lambda không quá 10^7 ký tự. Bạn cần in kết quả rút gọn dấu ngã của biểu thức này, thao tác này hoạt động giống như cách giảm dấu izzy cho biểu thức omega-lambda, nhưng với dấu ngoặc vuông và dấu ngoặc nhọn.

Nhớ lại rằng  izzy-reduction là một trong những thao tác trên các biểu thức như vậy. Khi nó được thực thi, nó sẽ kiểm tra xem chuỗi dấu ngoặc trong biểu thức có đúng không. Các điều khoản được bỏ qua. Nếu trình tự đúng, nó sẽ trở thành thuật ngữ gg, nếu không, nó sẽ trở thành thuật ngữ wp. 
 

 

Ví dụ
<đầu>
# Đầu vào Đầu ra
1 chính{izzy[lol](ttt)} gg