Anda harus menulis sebuah program atau fungsi yang mengambil string tanda kurung dan menampilkan apakah string itu benar-benar cocok atau tidak. Program Anda harus mencetak nilai yang benar atau salah , dan IO bisa dalam format yang masuk akal .
Aturan dan definisi:
Untuk tujuan tantangan ini, "braket" adalah salah satu karakter:
()[]{}<>
.Sepasang tanda kurung dianggap "cocok" jika tanda kurung buka dan tutup berada dalam urutan yang benar dan tidak memiliki karakter di dalamnya, seperti
() []{}
Atau jika setiap subelemen di dalamnya juga cocok.
[()()()()] {<[]>} (()())
Subelemen juga dapat disarungkan beberapa lapisan.
[(){<><>[()]}<>()] <[{((()))}]>
String dianggap "Sepenuhnya cocok" jika dan hanya jika:
Setiap karakter tunggal adalah braket,
Setiap pasangan braket memiliki braket pembuka dan penutup yang benar dan dalam urutan yang benar, dan
Setiap braket dicocokkan.
Anda dapat berasumsi bahwa input hanya akan berisi ASCII yang dapat dicetak .
Tes IO
Berikut adalah beberapa masukan yang harus mengembalikan nilai kebenaran:
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
Dan berikut adalah beberapa output yang harus mengembalikan nilai palsu:
( Has no closing ')'
}{ Wrong order
(<)> Each pair contains only half of a matched element
(()()foobar) Contains invalid characters
[({}<>)> The last bracket should be ']' instead of '>'
(((())) Has 4 opening brackets, but only 3 closing brackets.
Seperti biasa, ini adalah kode-golf, sehingga celah standar berlaku, dan jawaban tersingkat dalam byte menang.
[}
cocok? Dan jika tidak, di mana itu dikecualikan oleh aturan-aturan ini?
Each pair of brackets has the correct opening and closing bracket and in the right order.