Đưa ra một chuỗi được ngoặc đơn đúng cách làm đầu vào, xuất ra một danh sách tất cả các chuỗi con không trống trong các dấu ngoặc phù hợp (hoặc bên ngoài tất cả các dấu ngoặc đơn), với các dấu ngoặc đơn được loại bỏ. Mỗi chuỗi con phải là chuỗi các ký tự trong ngoặc đơn khớp chính xác. Các lớp nền nên được liệt kê theo thứ tự độ sâu và các chuỗi con có cùng độ sâu phải được liệt kê theo thứ tự chúng xảy ra trong chuỗi. Giả sử đầu vào luôn được ngoặc chính xác.
Bạn có thể cho rằng đầu vào chỉ chứa các chữ cái và dấu ngoặc đơn ASCII chữ thường.
Câu trả lời của bạn phải là một hàm mà khi được cung cấp một chuỗi sẽ trả về một danh sách các chuỗi.
Ví dụ:
'a(b)c(d)e' -> ['ace', 'b', 'd']
'a(b(c)d)e' -> ['ae', 'bd', 'c']
'a((((b))))' -> ['a', 'b']
'a()b' -> ['ab']
'' -> []
'a' -> ['a']
'(((a(b)c(d)e)f)g)h' -> ['h', 'g', 'f', 'ace', 'b', 'd']
'ab(c(((d)ef()g)h()(i)j)kl)()' -> ['ab', 'ckl', 'hj', 'efg', 'i', 'd']
Ít byte nhất sẽ thắng.
i
ít lồng nhau hơn d
.
'i'
và'd'
theo đúng thứ tự trong trường hợp thử nghiệm cuối cùng?