คำถามนี้เป็นความท้าทายครั้งที่สองของ Brain-Flak Birthday ที่ออกแบบมาเพื่อฉลองวันเกิดครั้งแรกของ Brain-Flak! คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับวันเกิดของ Brain-Flak ได้ที่นี่
ท้าทาย
สำหรับความท้าทายนี้คุณจะสร้างสตริงที่จับคู่ทั้งหมดจากรายการของวงเล็บ ในการขอยืมคำจำกัดความของ DJMcMayhem สำหรับสตริงที่ตรงกันอย่างสมบูรณ์:
สำหรับวัตถุประสงค์ของการท้าทายนี้เป็น "วงเล็บ" ใด ๆ
()[]{}<>
ของตัวละครเหล่านี้:เครื่องหมายวงเล็บคู่หนึ่งถือว่าเป็น "จับคู่" หากวงเล็บเปิดและปิดอยู่ในลำดับที่ถูกต้องและไม่มีอักขระอยู่ภายในเช่น
() []{}
หรือถ้าทุกองค์ประกอบย่อยภายในนั้นถูกจับคู่ด้วย
[()()()()] {<[]>} (()())
องค์ประกอบย่อยยังสามารถซ้อนกันหลายชั้นลึก
[(){<><>[()]}<>()] <[{((()))}]>
สตริงถือว่าเป็น "จับคู่อย่างสมบูรณ์" ถ้าเฉพาะในวงเล็บแต่ละคู่มีวงเล็บเปิดและปิดที่ถูกต้องในลำดับที่ถูกต้อง
อินพุต
โปรแกรมหรือฟังก์ชั่นของคุณจะบันทึกรายการหมายเลขสี่ตัวที่ไม่เป็นลบในรูปแบบที่สะดวกและสอดคล้องกัน ซึ่งรวมถึง (แต่ไม่ จำกัด เฉพาะ) รายการของจำนวนเต็มสตริงที่คั่นด้วยตัวเลขที่ไม่ใช่ตัวเลขหรืออาร์กิวเมนต์ที่แยกต่างหาก ตัวเลขสี่ตัวนี้แสดงถึงจำนวนคู่ที่ตรงกันของวงเล็บแต่ละประเภท ตัวอย่างเช่น[1,2,3,4]
จะเป็นตัวแทนของ:
1 คู่ของ
()
2 คู่ของ
{}
3 คู่
[]
และ4 คู่
<>
คุณสามารถเลือกวงเล็บคู่ใดที่แต่ละอินพุทสอดคล้องกับตราบเท่าที่มันสอดคล้องกัน
เอาท์พุต
คุณควรส่งออกสตริงที่จับคู่ทั้งหมดที่สามารถเกิดขึ้นได้จากรายการวงเล็บนี้โดยไม่ซ้ำกัน เอาต์พุตสามารถอยู่ในรูปแบบที่สมเหตุสมผลซึ่งรวมถึงการพิมพ์สตริงที่คั่นด้วยวงเล็บไม่ใช่ STDOUT หรือรายการสตริงเป็นค่าส่งคืนจากฟังก์ชัน
อัลกอริทึมของคุณต้องใช้งานได้กับอินพุตใด ๆ แต่คุณไม่จำเป็นต้องกังวลเกี่ยวกับการ จำกัด หน่วยความจำเวลาหรือจำนวนเต็ม (เช่นถ้าคำตอบของคุณอยู่ใน C คุณจะไม่ได้รับ 2 33เป็นอินพุต)
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่างอินพุตและเอาต์พุต
สำหรับตัวอย่างเหล่านี้ฉันจะใช้ลำดับอินพุตเดียวกันกับข้างบน
สำหรับแต่ละตัวอย่างบรรทัดแรกจะเป็นอินพุตและบรรทัดต่อไปนี้จะเป็นเอาต์พุต
Example 0:
[0,0,0,0]
Example 1:
[1,0,0,0]
()
Example 2:
[0,2,0,0]
{}{}
{{}}
Example 3:
[0,0,1,1]
[]<>
[<>]
<[]>
<>[]
Example 4:
[0,1,2,0]
{}[][] {}[[]] {[]}[] {[][]} {[[]]}
[{}][] [{}[]] [{[]}] []{}[] []{[]}
[][{}] [][]{} [[{}]] [[]{}] [[]]{}
Example 5:
[1,0,0,3]
()<><><> ()<><<>> ()<<>><> ()<<><>> ()<<<>>> (<>)<><> (<>)<<>>
(<><>)<> (<><><>) (<><<>>) (<<>>)<> (<<>><>) (<<><>>) (<<<>>>)
<()><><> <()><<>> <()<>><> <()<><>> <()<<>>> <(<>)><> <(<>)<>>
<(<><>)> <(<<>>)> <>()<><> <>()<<>> <>(<>)<> <>(<><>) <>(<<>>)
<><()><> <><()<>> <><(<>)> <><>()<> <><>(<>) <><><()> <><><>()
<><<()>> <><<>()> <><<>>() <<()>><> <<()><>> <<()<>>> <<(<>)>>
<<>()><> <<>()<>> <<>(<>)> <<>>()<> <<>>(<>) <<>><()> <<>><>()
<<><()>> <<><>()> <<><>>() <<<()>>> <<<>()>> <<<>>()> <<<>>>()
Example 6:
[1,1,1,1]
(){}[]<> (){}[<>] (){}<[]> (){}<>[] (){[]}<> (){[]<>} (){[<>]}
(){<[]>} (){<>}[] (){<>[]} ()[{}]<> ()[{}<>] ()[{<>}] ()[]{}<>
()[]{<>} ()[]<{}> ()[]<>{} ()[<{}>] ()[<>{}] ()[<>]{} ()<{}[]>
()<{}>[] ()<{[]}> ()<[{}]> ()<[]{}> ()<[]>{} ()<>{}[] ()<>{[]}
()<>[{}] ()<>[]{} ({})[]<> ({})[<>] ({})<[]> ({})<>[] ({}[])<>
({}[]<>) ({}[<>]) ({}<[]>) ({}<>)[] ({}<>[]) ({[]})<> ({[]}<>)
({[]<>}) ({[<>]}) ({<[]>}) ({<>})[] ({<>}[]) ({<>[]}) ([{}])<>
([{}]<>) ([{}<>]) ([{<>}]) ([]){}<> ([]){<>} ([])<{}> ([])<>{}
([]{})<> ([]{}<>) ([]{<>}) ([]<{}>) ([]<>){} ([]<>{}) ([<{}>])
([<>{}]) ([<>]){} ([<>]{}) (<{}[]>) (<{}>)[] (<{}>[]) (<{[]}>)
(<[{}]>) (<[]{}>) (<[]>){} (<[]>{}) (<>){}[] (<>){[]} (<>)[{}]
(<>)[]{} (<>{})[] (<>{}[]) (<>{[]}) (<>[{}]) (<>[]){} (<>[]{})
{()}[]<> {()}[<>] {()}<[]> {()}<>[] {()[]}<> {()[]<>} {()[<>]}
{()<[]>} {()<>}[] {()<>[]} {([])}<> {([])<>} {([]<>)} {([<>])}
{(<[]>)} {(<>)}[] {(<>)[]} {(<>[])} {}()[]<> {}()[<>] {}()<[]>
{}()<>[] {}([])<> {}([]<>) {}([<>]) {}(<[]>) {}(<>)[] {}(<>[])
{}[()]<> {}[()<>] {}[(<>)] {}[]()<> {}[](<>) {}[]<()> {}[]<>()
{}[<()>] {}[<>()] {}[<>]() {}<()[]> {}<()>[] {}<([])> {}<[()]>
{}<[]()> {}<[]>() {}<>()[] {}<>([]) {}<>[()] {}<>[]() {[()]}<>
{[()]<>} {[()<>]} {[(<>)]} {[]()}<> {[]()<>} {[](<>)} {[]}()<>
{[]}(<>) {[]}<()> {[]}<>() {[]<()>} {[]<>()} {[]<>}() {[<()>]}
{[<>()]} {[<>]()} {[<>]}() {<()[]>} {<()>}[] {<()>[]} {<([])>}
{<[()]>} {<[]()>} {<[]>()} {<[]>}() {<>()}[] {<>()[]} {<>([])}
{<>}()[] {<>}([]) {<>}[()] {<>}[]() {<>[()]} {<>[]()} {<>[]}()
[(){}]<> [(){}<>] [(){<>}] [()]{}<> [()]{<>} [()]<{}> [()]<>{}
[()<{}>] [()<>{}] [()<>]{} [({})]<> [({})<>] [({}<>)] [({<>})]
[(<{}>)] [(<>){}] [(<>)]{} [(<>{})] [{()}]<> [{()}<>] [{()<>}]
[{(<>)}] [{}()]<> [{}()<>] [{}(<>)] [{}]()<> [{}](<>) [{}]<()>
[{}]<>() [{}<()>] [{}<>()] [{}<>]() [{<()>}] [{<>()}] [{<>}()]
[{<>}]() [](){}<> [](){<>} []()<{}> []()<>{} []({})<> []({}<>)
[]({<>}) [](<{}>) [](<>){} [](<>{}) []{()}<> []{()<>} []{(<>)}
[]{}()<> []{}(<>) []{}<()> []{}<>() []{<()>} []{<>()} []{<>}()
[]<(){}> []<()>{} []<({})> []<{()}> []<{}()> []<{}>() []<>(){}
[]<>({}) []<>{()} []<>{}() [<(){}>] [<()>{}] [<()>]{} [<({})>]
[<{()}>] [<{}()>] [<{}>()] [<{}>]() [<>(){}] [<>()]{} [<>({})]
[<>{()}] [<>{}()] [<>{}]() [<>](){} [<>]({}) [<>]{()} [<>]{}()
<(){}[]> <(){}>[] <(){[]}> <()[{}]> <()[]{}> <()[]>{} <()>{}[]
<()>{[]} <()>[{}] <()>[]{} <({})[]> <({})>[] <({}[])> <({[]})>
<([{}])> <([]){}> <([])>{} <([]{})> <{()}[]> <{()}>[] <{()[]}>
<{([])}> <{}()[]> <{}()>[] <{}([])> <{}[()]> <{}[]()> <{}[]>()
<{}>()[] <{}>([]) <{}>[()] <{}>[]() <{[()]}> <{[]()}> <{[]}()>
<{[]}>() <[(){}]> <[()]{}> <[()]>{} <[({})]> <[{()}]> <[{}()]>
<[{}]()> <[{}]>() <[](){}> <[]()>{} <[]({})> <[]{()}> <[]{}()>
<[]{}>() <[]>(){} <[]>({}) <[]>{()} <[]>{}() <>(){}[] <>(){[]}
<>()[{}] <>()[]{} <>({})[] <>({}[]) <>({[]}) <>([{}]) <>([]){}
<>([]{}) <>{()}[] <>{()[]} <>{([])} <>{}()[] <>{}([]) <>{}[()]
<>{}[]() <>{[()]} <>{[]()} <>{[]}() <>[(){}] <>[()]{} <>[({})]
<>[{()}] <>[{}()] <>[{}]() <>[](){} <>[]({}) <>[]{()} <>[]{}()