Tôi muốn hàm Python lấy một chuỗi và trả về một mảng, trong đó mỗi mục trong mảng là ký tự hoặc một mảng khác thuộc loại này. Các mảng lồng nhau được đánh dấu trong chuỗi đầu vào bằng cách bắt đầu bằng '(' và kết thúc bằng ')'.Cách phân tích cú pháp một chuỗi và trả về một mảng lồng nhau?
Như vậy, chức năng sẽ hành động như thế này:
1) foo("abc") == ["a", "b", "c"]
2) foo("a(b)c") == ["a", ["b"], "c"]
3) foo("a(b(c))") == ["a", ["b", ["c"]]]
4) foo("a(b(c)") == error: closing bracket is missing
5) foo("a(b))c") == error: opening bracket is missing
6) foo("a)b(c") == error: opening bracket is missing
Lưu ý: Tôi muốn một giải pháp đó là hoàn toàn chức năng.
Sử dụng đệ quy ở đây, nó hoàn toàn phù hợp. Tìm một '(' trong dòng mã thông báo có nghĩa là recurse-in. Tìm một ')' ở lời gọi cấp cao nhất có nghĩa là có sự cân bằng không khớp. – user2246674
Điều này là để làm gì? –
cần sử dụng ngăn xếp .. –