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

    solution

    Đề bài: [Trình biên dịch] Chiều cao và số lá của cây cú pháp

    Cho một biểu thức số học ở dạng tiền tố (prefix), hãy dựng cây cú pháp trừu tượng (AST) tương ứng, trong đó mỗi toán tử là một nút trong (có đúng 2 con) và mỗi toán hạng là một nút lá.

    Yêu cầu tính:

    • Chiều cao của cây: số cạnh trên đường đi dài nhất từ gốc tới một lá (cây chỉ gồm 1 nút lá có chiều cao 000).
    • Số lá của cây (số toán hạng xuất hiện).

    Ví dụ: với biểu thức tiền tố + a * b c, cây AST là nút gốc + có con trái là lá a, con phải là nút * với hai con lá b, c. Chiều cao =2=2=2, số lá =3=3=3.

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

      Một dòng duy nhất chứa biểu thức tiền tố, các token (toán tử và toán hạng) cách nhau bởi đúng một khoảng trắng. Toán tử nhị phân thuộc tập {+,−,∗,/,∧}\{+, -, *, /, \wedge\}{+,−,∗,/,∧} (ký hiệu ^ cho lũy thừa). Toán hạng là một chữ cái thường (a-z, biến) hoặc một số nguyên không âm (có thể nhiều chữ số). Đề bài đảm bảo biểu thức tiền tố hợp lệ (parse được thành đúng một cây).

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

      In ra một dòng gồm hai số nguyên cách nhau bởi một khoảng trắng: chiều cao của cây và số lá của cây.

      Ví dụ với input + a * b c, output là 2 3.

    Ví dụ:

    Đầu vào:

    + a b

    Đầu ra:

    1 2
    

    Đầu vào:

    a

    Đầu ra:

    0 1
    

    Đang tải editor...