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] Trung tố có dấu trừ một ngôi sang hậu tố

    Bộ phân tích cú pháp thực sự phải phân biệt dấu trừ hai ngôi (phép trừ) với dấu trừ một ngôi (đổi dấu). Quy tắc nhận biết: dấu - là một ngôi nếu nó là token đầu tiên của biểu thức, hoặc token liền trước nó là một toán tử (+,−,×,÷,^+,-,\times,\div,\hat{}+,−,×,÷,^, kể cả trừ một ngôi khác) hoặc dấu (; ngược lại (đứng sau toán hạng hoặc dấu )) nó là trừ hai ngôi.

    Cho biểu thức trung tố gồm toán hạng là số nguyên không âm hoặc biến (một chữ cái thường), các toán tử +,−,×,÷,^+,-,\times,\div,\hat{}+,−,×,÷,^ (+ - * / ^, ^\hat{}^ kết hợp phải, ưu tiên cao nhất) và dấu ngoặc. Hãy chuyển sang hậu tố, trong đó dấu trừ một ngôi được ký hiệu là @ (một toán tử một ngôi, độ ưu tiên cao hơn cả ^\hat{}^, kết hợp phải).

    Ví dụ: - 3 + 4 (dấu - đầu tiên là một ngôi) cho hậu tố 3 @ 4 +; 3 - - 4 (dấu - đầu là hai ngôi, dấu - sau là một ngôi) cho hậu tố 3 4 @ -.

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

      Một dòng duy nhất chứa biểu thức trung tố, các token cách nhau bởi đúng một khoảng trắng.

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

      In ra một dòng là biểu thức hậu tố, các token cách nhau bởi đúng một khoảng trắng; dấu trừ một ngôi được in là @.

    Ví dụ:

    Đầu vào:

    - 3 + 4

    Đầu ra:

    3 @ 4 +
    

    Đầu vào:

    3 - - 4

    Đầu ra:

    3 4 @ -
    

    Đang tải editor...