Ti verrà data una stringa (possibilmente vuota) contenente parentesi ( [{()}]
) e qualsiasi altro carattere ( A
- Z
, a
- z
, 0
- 9
, punteggiatura). È necessario verificare se aderisce alle seguenti regole:
- I caratteri non tra parentesi vengono ignorati.
- Ogni staffa aperta
[{(
ha una staffa di chiusura)}]
. Quindi[](
non è permesso. - Le parentesi sono nidificate correttamente.
[(])
non è permesso. - Le parentesi graffe non possono contenere parentesi quadre al loro interno. Le parentesi semplici non possono contenere parentesi graffe o quadrate al loro interno. Quindi
[({})]
,[{[]}]
e({})
non sono ammessi. Le parentesi possono essere nidificate con parentesi simili, quindi[[{((()))}{{(())}}]()]{()}
è consentito.
L'output è un singolo valore di verità / falsità secondo la vostra scelta.
Il codice più corto vince.
Casi test
b[[a{(/)}(())+={{}-}],]
-> Valido
([h][e][l][l][o])
-> Non valido
[///[{(\/(arg()))}1{{((-)-2)}}]()]{()}
-> Valido
hi
-> Valido