Cho một biểu thức trung tố đầy đủ ngoặc (mỗi phép toán hai ngôi đều được bao trong một cặp ngoặc đơn, không có khoảng trắng thừa), với toán tử hai ngôi +,−,×,÷ và toán hạng là biến (một chữ cái thường) hoặc hằng số nguyên không âm (có thể nhiều chữ số).
Hãy phân tích cú pháp để dựng lại AST, sau đó in ra kết quả duyệt theo mức (level-order / BFS) của cây: mỗi mức là một dòng, các nút trên cùng một mức được liệt kê từ trái sang phải, cách nhau bởi một khoảng trắng.
Một dòng duy nhất chứa biểu thức trung tố đầy đủ ngoặc, không chứa khoảng trắng. Độ dài chuỗi không vượt quá 2000 ký tự.
In ra nhiều dòng, mỗi dòng tương ứng một mức của cây (bắt đầu từ gốc ở dòng đầu tiên), các nhãn nút trên cùng mức cách nhau một khoảng trắng, theo thứ tự từ trái sang phải.
Ví dụ: với input (a+(b*c)), cây có gốc +, con trái là lá a, con phải là nút * với hai con b, c. Output gồm 3 dòng:
+
a *
b c
Ví dụ:
Đầu vào:
(a+(b*c))
Đầu ra:
+
a *
b c
Đầu vào:
a
Đầu ra:
a
Đang tải editor...