Otrzymasz (ewentualnie pusty) ciąg zawierający nawiasy kwadratowe ( [{()}]
) i wszelkie inne znaki ( A
- Z
, a
- z
, 0
- 9
, interpunkcja). Musisz sprawdzić, czy przestrzega następujących zasad:
- Znaki bez nawiasów są ignorowane.
- Każdy otwarty wspornik
[{(
ma zamykający wspornik)}]
. Więc[](
nie jest dozwolone. - Wsporniki są prawidłowo zagnieżdżone.
[(])
nie jest dozwolone. - Nawiasy klamrowe nie mogą zawierać nawiasów kwadratowych. Proste nawiasy kwadratowe nie mogą zawierać nawiasów klamrowych ani kwadratowych. Tak
[({})]
,[{[]}]
i({})
nie są dozwolone. Nawiasy można zagnieżdżać za pomocą podobnych nawiasów, więc[[{((()))}{{(())}}]()]{()}
jest to dozwolone.
Dane wyjściowe to jedna wartość true / falsey zgodnie z wyborem.
Najkrótszy kod wygrywa.
Przypadki testowe
b[[a{(/)}(())+={{}-}],]
-> Ważne
([h][e][l][l][o])
-> Niepoprawny
[///[{(\/(arg()))}1{{((-)-2)}}]()]{()}
-> Ważne
hi
-> Ważne