มากำหนดฟังก์ชั่น "ขนาดที่ไม่ได้ห่อ" u
ของรายการซ้อนl
(มีเพียงรายการ) โดยกฎต่อไปนี้:
- ถ้า
l
ว่างแล้วก็u(l)
คือ 1 - หาก
l
ไม่ว่างเปล่าu(l)
เท่ากับผลรวมของขนาดที่ยังไม่ได้เปิดของทุกองค์ประกอบในl
บวกอีกหนึ่ง
งานของคุณคือการเขียนโปรแกรม (หรือฟังก์ชั่น) ที่ใช้รายการเป็นอินพุตและเอาต์พุต (หรือส่งคืน) ขนาดที่ไม่ได้ตัดทิ้งของรายการ
กรณีทดสอบ:
[] -> 1
[[[]],[]] -> 4
[[[]],[[[[]],[]]],[[[]],[[[[]],[[],[[]]]]]]] -> 19
[[[[]]]] -> 4
นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุด (เป็นไบต์) จะชนะ
[[[]][]]
แทนสิ่งนี้[[[]],[]]
ในตัวอย่างที่สองของคุณได้ไหม?
["This is some text [with square brackets in] ...[& maybe more than one pair]"]
คืออะไร?
]
ดูเหมือนจะเป็นทางออกที่สั้นที่สุดในหลายภาษา แต่ก็มีคำตอบมากมายที่จริง ๆ แล้วแก้ปัญหานี้ผ่านการจัดการรายการ การเกิดขึ้นของอักขระอินพุต
()
แทนได้[]
หรือไม่