นี่เป็นหนึ่งในความท้าทายที่นำไปสู่วันเกิดของ Brain-Flak ค้นหาข้อมูลเพิ่มเติมได้ที่นี่
ท้าทาย
สำหรับความท้าทายครั้งนี้วัตถุประสงค์ของคุณจะได้รับการหาคู่แรกของการจับคู่วงเล็บในสตริงจับคู่ได้อย่างสมบูรณ์ของ()[]{}<>
วงเล็บ ในการขอยืมคำจำกัดความของ DJMcMayhem สำหรับสตริงที่ตรงกันอย่างสมบูรณ์:
สำหรับวัตถุประสงค์ของการท้าทายนี้เป็น "วงเล็บ" ใด ๆ
()[]{}<>
ของตัวละครเหล่านี้:เครื่องหมายวงเล็บคู่หนึ่งถือว่าเป็น "จับคู่" หากวงเล็บเปิดและปิดอยู่ในลำดับที่ถูกต้องและไม่มีอักขระอยู่ภายในเช่น
() []{}
หรือถ้าทุกองค์ประกอบย่อยภายในนั้นถูกจับคู่ด้วย
[()()()()] {<[]>} (()())
องค์ประกอบย่อยยังสามารถซ้อนกันหลายชั้นลึก
[(){<><>[()]}<>()] <[{((()))}]>
สตริงถือว่าเป็น "จับคู่อย่างสมบูรณ์" ถ้าเฉพาะในวงเล็บแต่ละคู่มีวงเล็บเปิดและปิดที่ถูกต้องในลำดับที่ถูกต้อง
อินพุต
ข้อมูลที่ป้อนจะประกอบด้วยสตริงที่ไม่ว่างเปล่าหรืออาร์เรย์ถ่านที่มีเฉพาะอักขระ()[]{}<>
เท่านั้นและรับประกันว่าจะจับคู่อย่างสมบูรณ์ คุณสามารถป้อนข้อมูลในลักษณะที่สมเหตุสมผลใด ๆ ที่สอดคล้องกับค่าเริ่มต้นของi / o ของเรา
เอาท์พุต
ผลลัพธ์ของโปรแกรมหรือฟังก์ชั่นของคุณจะเป็นดัชนีของวงเล็บเหลี่ยมซึ่งปิดอันแรก ผลลัพธ์จะต้องเป็นอย่างใดอย่างหนึ่ง0
หรือ1
จัดทำดัชนี อีกครั้งผลลัพธ์อาจอยู่ในลักษณะที่สมเหตุสมผลใด ๆ ที่สอดคล้องกับค่าเริ่มต้นของi / o ของเรา
กรณีทดสอบ
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
นี่คือcode-golf , ไบต์ที่น้อยที่สุดชนะ!