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

    solution

    Đề bài: [Python] Kiểm tra DSL điều kiện (tuple lồng + OR + guard)

    Cho một dòng mô tả điều kiện theo DSL JSON-like (đã parse bằng ast.literal_eval). Mỗi node có dạng tuple:

    • ('VAR', name) -> trả về giá trị biến (đọc từ env).
    • ('NUM', n) -> trả về n.
    • ('CMP', op, a, b) với op in {'<','<=','>','>=','==','!='}
    • ('AND', a, b) / ('OR', a, b) / ('NOT', a) Biến và giá trị đều là số nguyên. Dòng 1: dict env, ví dụ {'x':5,'y':10} (parse bằng ast.literal_eval). Dòng 2: cây biểu thức. Đánh giá bằng hàm đệ quy với match-case trên class/tuple pattern + OR pattern. In 'TRUE' hoặc 'FALSE'. Nếu gặp lỗi (biến không tồn tại, op lạ, ...) in 'ERROR'. Yêu cầu: dùng match-case với guard + OR pattern.
    • Định dạng đầu vào:

      Dòng 1: env (dict). Dòng 2: cây biểu thức (tuple lồng).

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

      Độ sâu <= 20; số trong [-10^9, 10^9].

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

      TRUE / FALSE / ERROR.

    Ví dụ:

    Đầu vào:

    {'x':5,'y':10}
    ('CMP','<',('VAR','x'),('VAR','y'))
    

    Đầu ra:

    TRUE

    Giải thích:

    x=5 < y=10 -> TRUE.

    Đang tải editor...