Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Chuyển cây cú pháp tiền tố sang trung tố đầy đủ ngoặc

    Khi in lại một AST (ví dụ để hiển thị lỗi hoặc debug mã nguồn), trình biên dịch thường cần chuyển cây từ dạng bên trong (tiền tố / hậu tố) sang dạng trung tố (infix) dễ đọc cho con người, kèm ngoặc đơn để thể hiện đúng cấu trúc cây mà không phụ thuộc độ ưu tiên toán tử.

    Cho một biểu thức tiền tố (prefix) với các toán tử hai ngôi +,−,×,÷+, -, \times, \div+,−,×,÷ và toán hạng là biến (một chữ cái thường) hoặc hằng số nguyên không âm, hãy chuyển AST tương ứng sang dạng trung tố, có ngoặc đơn bao quanh MỌI phép toán hai ngôi (kể cả phép toán ở gốc cây), không thêm bất kỳ khoảng trắng nào.

    • Định dạng đầu vào:

      Một dòng duy nhất chứa các token của biểu thức tiền tố, cách nhau bởi khoảng trắng. Biểu thức luôn hợp lệ và không rỗng.

    • Định dạng đầu ra:

      In ra một dòng duy nhất là biểu thức trung tố, mỗi phép toán hai ngôi được bao trong một cặp ngoặc đơn (...), không chứa khoảng trắng.

      Ví dụ: với input + a * b c, output là (a+(b*c)). Với input chỉ có một toán hạng, ví dụ a, output là a (không có ngoặc).

    Ví dụ:

    Đầu vào:

    a

    Đầu ra:

    a
    

    Đầu vào:

    + a * b c

    Đầu ra:

    (a+(b*c))
    

    Đang tải editor...