Điểm:
400 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Cho một biểu thức hậu tố với số hạng là các số nguyên dương và ba toán tử \(+, -, *\). Hãy tính giá trị của biểu thức hậu tố.
Ví dụ: biểu thức hậu tố: \(2\ 3\ 4\ +\ *\ 5\ -\ 2\ 2\ *\ +\) có giá trị là 13.
Input
- Gồm nhiều dòng thể hiện biểu thức hậu tố, mỗi dòng có một chuối các số hạng là một số nguyên dương trong phạm vi từ \(1\) đến \(100\). Giữa hai số hạng, hoặc giữa hai toán tử, hoặc giữa số hạng và toán tử, cách nhau một khoảng trắng. Chiều dài biểu thức không quá \(100\) ký tự.
Dữ liệu đề bài cho đảm bảo biểu thức hậu tố là hợp lệ. Trong quá trình tính toán đảm bảo trị tuyệt đối các giá trị trung gian không vượt quá \(10^9\).
Output
- Mỗi dòng là giá trị của biểu thức hậu tố tương ứng với dữ liệu vào.
Example
Test 1
Input
2 3 4 + * 5 - 2 2 * +
Output
13
Note
Giải thích: \(2\ 3\ 4\ +\ *\ 5\ -\ 2\ 2\ *\ + = 2 * (3+4) - 5 +(2*2)=13\)
Bình luận
stack / vector go go bruh:D
gợi ý cho bạn nào cần là mình sẽ tạo một stack lưu các số trong xâu, khi gặp dấu phép toán thì lưu giá trị của 2 phần tử cuối cùng trong stack, pop 2 phần tử cuối ra, tính phép tính của 2 giá trị đó với dấu phép toán rồi push giá trị đó vô lại trong stack. Sau khi duyệt hết xâu thì phần tử cuối cùng trong stack chính là kết quả.
Một điều lưu ý nữa là nhớ trong xâu sẽ có dấu cách nhé 😃
Cho em hỏi bài này 2 test cuối có j đặc biệt ko ạ?