Xem xét một chuỗi không trống của dấu ngoặc đơn cân bằng chính xác:
(()(()())()((())))(())
Chúng ta có thể tưởng tượng rằng mỗi cặp dấu ngoặc đơn đại diện cho một chiếc nhẫn trong một công trình kính thiên văn bị sụp đổ . Vì vậy, hãy mở rộng kính thiên văn:
( )( )
()( )()( ) ()
()() ( )
()
Một cách khác để xem xét nó là các dấu ngoặc đơn ở độ sâu n được chuyển đến dòng n , trong khi vẫn giữ vị trí nằm ngang của chúng.
Nhiệm vụ của bạn là lấy một chuỗi các dấu ngoặc đơn cân bằng như vậy và tạo ra phiên bản mở rộng.
Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc tương đương gần nhất), tham số dòng lệnh hoặc tham số hàm và tạo đầu ra thông qua STDOUT (hoặc tương đương gần nhất), trả về giá trị hoặc tham số hàm (out).
Bạn có thể giả sử rằng chuỗi đầu vào là hợp lệ, tức là chỉ bao gồm các dấu ngoặc đơn, được cân bằng chính xác.
Bạn có thể in các dấu cách trên mỗi dòng, nhưng không có nhiều khoảng trắng hàng đầu hơn mức cần thiết. Tổng cộng các dòng không được dài hơn hai lần chiều dài của chuỗi đầu vào. Bạn có thể tùy ý in một dòng mới duy nhất.
Ví dụ
Ngoài ví dụ trên, đây là một vài trường hợp thử nghiệm nữa (đầu vào và đầu ra được phân tách bằng một dòng trống).
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
Những thách thức liên quan:
- Chuỗi địa hình , yêu cầu bạn sản xuất những gì thực chất là phần bổ sung của đầu ra trong thử thách này.
- Code Explanation Formatter , một khái quát rộng rãi về các ý tưởng trong thử thách này, được đăng gần đây bởi PhiNotPi. (Trên thực tế, mô tả ban đầu của PhiNotPi về ý tưởng của anh ấy là điều đã truyền cảm hứng cho thử thách này.)
Bảng xếp hạng
Huh, điều này có khá nhiều sự tham gia, vì vậy đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
# Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
# Ruby, <s>104</s> <s>101</s> 96 bytes