วงเล็บปกติ ( ()
, []
, <>
และ{}
) ที่ดีและชัดเจน แต่ใครบางคนคิดว่ามันจะเป็นความคิดที่ดีที่จะใช้ตัวอักษรวงเล็บไม่ใช่เป็นวงเล็บ อักขระเหล่านี้|
และ"
มีความคลุมเครือ ตัวอย่างเช่น
""""
สอดคล้องกับ
(())
หรือ
()()
มันเป็นไปไม่ได้ที่จะบอก
สิ่งต่าง ๆ เริ่มน่าสนใจเมื่อคุณผสมวงเล็บประเภทที่ไม่ชัดเจนเช่น
"|""||""|"
อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
([(([]))]),([()[]()]),([()][()])
งาน
งานของคุณคือการใช้สตริงที่ทำจากอักขระที่ไม่ชัดเจนและส่งออกสตริงสมดุลที่เป็นไปได้ทั้งหมดที่ผู้เขียนตั้งใจไว้
เพิ่มเติมรูปธรรมผลผลิตสตริงสมดุลทั้งหมดที่สามารถทำแทนที่|
ด้วย[
หรือ]
และ"
ด้วยหรือ(
)
คุณไม่ควรส่งออกสตริงที่สมดุลใด ๆ สองครั้ง
IO
เป็นข้อมูลที่คุณควรจะสตริงประกอบด้วยและ|
"
หากคุณต้องการเลือกอักขระที่แตกต่างกันสองตัวนอกเหนือจาก|
และ"
เพื่อใช้เป็นตัวแทนที่คุณสามารถทำได้ คุณควรส่งออกคอนเทนเนอร์ของสตริงที่สมดุล คุณอาจเลือกที่จะเปลี่ยน[]
และ()
ในการส่งออกกับคนอื่น ๆ สองคู่วงเล็บใด ๆ ( ()
, []
, <>
หรือ{}
) ที่คุณต้องการ รูปแบบผลลัพธ์ของคุณควรสอดคล้องกันระหว่างการดำเนินการ
เกณฑ์การให้คะแนน
นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยกว่าจะดีกว่า
กรณีทดสอบ
"" -> ["()"]
"|"| -> []
||| -> []
"""" -> ["(())","()()"]
""|| -> ["()[]"]
"|"||"|" -> ["([([])])"]
"|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]