Było to jedno z szeregu wyzwań poprzedzających urodziny Brain-Flaka. Dowiedz się więcej tutaj .
Wyzwanie
W tym wyzwaniu Twoim celem będzie znalezienie pierwszej pary pasujących nawiasów w całkowicie dopasowanym ciągu ()[]{}<>
nawiasów. Aby pożyczyć definicję w pełni dopasowanego ciągu DJMcMayhem :
Dla celów niniejszego wyzwanie, „uchwyt” jest każdy z tych znaków:
()[]{}<>
.Para nawiasów jest uważana za „dopasowaną”, jeśli nawiasy otwierające i zamykające są w odpowiedniej kolejności i nie zawierają w sobie znaków, takich jak
() []{}
Lub jeśli każdy podelement w nim również jest dopasowany.
[()()()()] {<[]>} (()())
Elementy podrzędne mogą być również zagnieżdżone na kilku warstwach.
[(){<><>[()]}<>()] <[{((()))}]>
Sznurek jest uważany za „w pełni dopasowany” wtedy i tylko wtedy, gdy każda para wsporników ma prawidłowy otwierający i zamykający wspornik we właściwej kolejności.
Wkład
Dane wejściowe będą składały się z pojedynczego niepustego łańcucha znaków lub tablicy znaków zawierającej tylko znaki ()[]{}<>
i gwarantuje się, że zostaną w pełni dopasowane. Możesz przyjmować dane wejściowe w dowolny rozsądny sposób, który odpowiada naszym ustawieniom domyślnym we / wy .
Wydajność
Wyjście twojego programu lub funkcji będzie indeksem nawiasu, który zamyka pierwszy. Wyjście musi być 0
lub 1
indeksowane. Ponownie, wyjście może być w dowolny rozsądny sposób, który odpowiada naszym domyślnym ustawieniom we / wy .
Przypadki testowe
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
To jest golf golfowy , wygrywa najmniej bajtów!