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

    solution

    Đề bài: [C#] C# OOP v5 - Expression hierarchy Eval với abstract+sealed

    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().

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

      Một dòng: biểu thức prefix, ví dụ "+ 1 * 2 3".

    • Ràng buộc đầu vào:

      Biểu thức hợp lệ; số token <= 100; |giá trị const| <= 10^4.

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

      Một dòng: giá trị Eval().

    Ví dụ:

    Đầu vào:

    + 1 * 2 3
    

    Đầu ra:

    7

    Giải thích:

    Prefix: + 1 (* 2 3) = 1 + 6 = 7.

    Đang tải editor...