Bạn phải viết một chương trình hoặc hàm lấy một chuỗi dấu ngoặc và xuất ra xem chuỗi đó có khớp hoàn toàn hay không. Chương trình của bạn nên in một giá trị trung thực hoặc giả , và IO có thể ở bất kỳ định dạng hợp lý nào .
Quy tắc và định nghĩa:
Đối với mục đích của thử thách này, "khung" là bất kỳ ký tự nào trong số này :
()[]{}<>
.Một cặp ngoặc được coi là "khớp" nếu dấu ngoặc mở và đóng theo đúng thứ tự và không có ký tự bên trong chúng, chẳng hạn như
() []{}
Hoặc nếu mọi phân lớp bên trong của nó cũng được khớp.
[()()()()] {<[]>} (()())
Subelements cũng có thể được lồng nhiều lớp sâu.
[(){<><>[()]}<>()] <[{((()))}]>
Một chuỗi được coi là "Hoàn toàn khớp" khi và chỉ khi:
Mỗi ký tự là một dấu ngoặc,
Mỗi cặp ngoặc có khung mở và đóng đúng và theo đúng thứ tự, và
Mỗi khung được khớp.
Bạn có thể cho rằng đầu vào sẽ chỉ chứa ASCII có thể in được .
Kiểm tra IO
Dưới đây là một số đầu vào sẽ trả về giá trị trung thực:
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
Và đây là một số kết quả đầu ra sẽ trả về giá trị giả:
( 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.
Như thường lệ, đây là môn đánh gôn, vì vậy các sơ hở tiêu chuẩn được áp dụng và câu trả lời ngắn nhất tính theo byte sẽ thắng.
[}
một trận đấu? Và nếu không, nó bị loại trừ bởi những quy tắc này ở đâu?
Each pair of brackets has the correct opening and closing bracket and in the right order.