Dấu ngoặc bình thường ( ()
, []
, <>
và {}
) là tốt đẹp và rõ ràng, tuy nhiên có người nghĩ rằng nó sẽ là một ý tưởng tốt để sử dụng ký tự khung phi như dấu ngoặc đơn. Những nhân vật này, |
và "
, mơ hồ. Ví dụ
""""
tương ứng với
(())
hoặc là
()()
Nó là không thể để nói.
Mọi thứ bắt đầu trở nên thú vị khi bạn trộn các loại dấu ngoặc mơ hồ, ví dụ:
"|""||""|"
Có thể là một trong những điều sau đây
([(([]))]),([()[]()]),([()][()])
Bài tập
Nhiệm vụ của bạn là lấy một chuỗi được tạo thành từ các ký tự mơ hồ và xuất ra tất cả các chuỗi cân bằng có thể có mà tác giả có thể dự định.
Cụ thể hơn bạn đầu ra tất cả các chuỗi cân bằng có thể được thực hiện thay thế |
với một trong hai [
hoặc ]
và "
với một trong hai (
hoặc )
. Bạn không nên xuất bất kỳ chuỗi cân bằng hai lần.
Tôi
Là đầu vào, bạn nên lấy một chuỗi bao gồm |
và "
. Nếu bạn muốn chọn hai ký tự riêng biệt khác |
và "
dùng làm vật thay thế, bạn có thể làm như vậy. Bạn nên xuất một thùng chứa các chuỗi cân bằng. Bạn có thể chọn để thay thế []
và ()
trong đầu ra với bất kỳ hai cặp khung khác ( ()
, []
, <>
hoặc {}
) bạn muốn. Định dạng đầu ra của bạn phải nhất quán trong các lần chạy.
Chấm điểm
Đây là môn đánh gôn, vì vậy câu trả lời sẽ được tính bằng byte với ít byte hơn.
Các trường hợp thử nghiệm
"" -> ["()"]
"|"| -> []
||| -> []
"""" -> ["(())","()()"]
""|| -> ["()[]"]
"|"||"|" -> ["([([])])"]
"|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]