«Тройка скобок» (которую я составил для этого испытания) является одним из следующих:
(...+...)
[...:...]
{...|...}
<...-...>
Сбалансированная строка триплетных скобок (для краткости BTBS) представляет собой либо пустую строку, две сцепленные BTBS, либо одну из указанных выше тройных скобок, каждая из которых ...
заменяется на BTBS.
Ваша задача - написать программу или функцию, которая проверяет, (+)[:]{|}<->
сбалансирована ли строка, состоящая только из одной строки . Самый короткий код выигрывает.
Примеры
Ваша программа должна вернуть truey для следующих строк:
(+)(+)(+)
[[[:]:]:(+(+))]{<->|<(+)->[:]}(+)
<<<<<<<<<<<<->->->->->->->->->->->->
{|(+[:<-{|(+[:<->])}>])}
[[[:]:[:]]:[[:]:[:]]]
{[:](+)|<->{|}}[(+)<->:{|}(+)]
Ваша программа должна возвращать ложные значения для следующих строк:
:[
<|>
(+(+)
[:][:](+[[:]):]
{|{|{|(+{|{|{|}}}}}+)}[:]{|}
{{||}}
<<->-<->-<->>
[(+):((+)+)+(+(+))]
<<<<<->->->->->->
<|>
в ложных примерах.
(|)
действительным. Я так не думаю, но я не уверен