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