Xây hệ phân cấp Expression: abstract class Expr có abstract int Eval(). Lớp Const : Expr (value), Eval = value. Lớp abstract Binary : Expr có protected Expr left, right và abstract override Eval(). Lớp sealed Add : Binary, Eval = left.Eval()+right.Eval(). Lớp sealed Mul : Binary, Eval = left.Eval()right.Eval(). Đọc một biểu thức ở dạng tiền tố (prefix) — token cách nhau bằng khoảng trắng trên một dòng: "+" cho Add, "" cho Mul, còn lại là số nguyên (Const). Phân tích bằng đệ quy/dùng stack chỉ mục, tạo cây Expr, in Eval().
Một dòng: biểu thức prefix, ví dụ "+ 1 * 2 3".
Biểu thức hợp lệ; số token <= 100; |giá trị const| <= 10^4.
Một dòng: giá trị Eval().
Ví dụ:
Đầu vào:
+ 1 * 2 3
Đầu ra:
7
Giải thích:
Đang tải editor...