30
วงเล็บแบบยืดได้
พิจารณาสตริงที่ไม่ว่างเปล่าของวงเล็บที่สมดุลอย่างถูกต้อง: (()(()())()((())))(()) เราสามารถจินตนาการได้ว่าวงเล็บแต่ละคู่แสดงถึงวงแหวนในโครงสร้างแบบยืดหดได้ ลองขยายกล้องโทรทรรศน์ออก: ( )( ) ()( )()( ) () ()() ( ) () อีกวิธีในการดูคือวงเล็บที่ความลึกnถูกย้ายไปที่บรรทัดnในขณะที่รักษาตำแหน่งแนวนอนไว้ งานของคุณคือการใช้สตริงของวงเล็บที่มีความสมดุลและสร้างเวอร์ชันเพิ่มเติม คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือเทียบเท่าที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรือพารามิเตอร์ฟังก์ชัน, และสร้างเอาต์พุตผ่าน STDOUT (หรือเทียบเท่าที่ใกล้เคียงที่สุด), ค่าส่งคืนหรือฟังก์ชัน (ออก) คุณอาจสมมติว่าสายป้อนข้อมูลที่ถูกต้องคือประกอบด้วยวงเล็บเท่านั้นซึ่งมีความสมดุลอย่างถูกต้อง คุณอาจพิมพ์ช่องว่างต่อท้ายในแต่ละบรรทัด แต่ไม่ต้องเว้นวรรคนำหน้าเกินความจำเป็น ยอดรวมบรรทัดต้องไม่ยาวเกินกว่าสองเท่าของความยาวของสตริงป้อนเข้า คุณสามารถเลือกที่จะพิมพ์ขึ้นบรรทัดใหม่ได้ ตัวอย่าง นอกเหนือจากตัวอย่างข้างต้นต่อไปนี้เป็นกรณีทดสอบอีกสองสามรายการ (อินพุตและเอาต์พุตถูกคั่นด้วยบรรทัดว่าง) () () (((()))) ( ) ( ) ( ) () ()(())((()))(())() ()( )( )( )() …