Jak znaleźć pozycję pasujących nawiasów lub nawiasów klamrowych w danym fragmencie tekstu?

Wiele edytorów tekstu i IDE ma funkcję, która podkreśla pasujące nawiasy, nawiasy kwadratowe lub nawiasy klamrowe, gdy kursor jest umieszczony nad znakiem otwierającym lub zamykającym w jednej z tych par.

Jaki algorytm jest używany do znalezienia pozycji pasującego nawiasu, biorąc pod uwagę położenie nawiasu otwierającego lub zamykającego w pliku tekstowym? Pamiętaj, że znaki te mogą być zagnieżdżone, więc po prostu skanowanie do przodu lub do tyłu tekstu, aż znajdziesz przeciwny znak, jest niewystarczające.

Przykład:

Niedawno natknąłem się na ten problem podczas pisaniabrainf * ck tłumacz w Javie.[ i] w tym języku są analogiczne do pętli while i mogą być zagnieżdżone. Tłumacz musi znaleźć dopasowanie[ lub] w zależności od wartości wskaźnika danych. ZobaczPrzykładowy kod ROT13 dla ilustracji zagnieżdżenia.

questionAnswers(2)

yourAnswerToTheQuestion