Đánh Giá Biểu Thức Hậu Tố Ba Lan (Reverse Polish Notation)
Cho một biểu thức toán học dưới dạng ký pháp Ba Lan ngược (Reverse Polish Notation - RPN) gồm N thẻ (tokens). Mỗi token là một số nguyên hoặc một trong 4 toán tử cơ bản: +, -, *, /…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: Stack Operations, String Parsing.
Nội dung đề bài
Mô tả bài toán
Cho một biểu thức toán học dưới dạng ký pháp Ba Lan ngược (Reverse Polish Notation - RPN) gồm N thẻ (tokens). Mỗi token là một số nguyên hoặc một trong 4 toán tử cơ bản: +, -, *, /.
Quy tắc tính toán:
- Phép chia hai số nguyên làm tròn về phía 0 (phép chia nguyên chuẩn trong C++
a / b). - Đảm bảo biểu thức luôn hợp lệ và không bao giờ xảy ra phép chia cho 0.
Hãy tính giá trị của biểu thức RPN.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng đầu chứa số nguyên N (1 ≤ N ≤ 105).
- Dòng thứ hai chứa N tokens phân cách bởi dấu cách. Mỗi token là một toán tử hoặc một số nguyên trong đoạn [-104, 104].
Output
- In ra một số nguyên duy nhất là kết quả của biểu thức.
Ràng buộc
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào tuân thủ đúng định dạng và miền giá trị được mô tả.
Ví dụ 1
Input
5
2 1 + 3 *Output
9Giải thích
Dữ liệu kiểm thử mẫu và kết quả thực thi theo yêu cầu.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
