Valid Parentheses
Ciąg nawiasów jest zrównoważony, gdy każdy nawias otwierający jest zamknięty nawiasem tego samego rodzaju, a pary znajdują się jedna w drugiej, zamiast się nakładać. Są trzy rodzaje: okrągłe (), kwadratowe [] i klamrowe {}.
Na przykład {[()()]} jest zrównoważony: każda para zamyka się wewnątrz pary, która ją obejmuje. Ale {(}) nie jest: nawias klamrowy zamyka się, gdy otwarty po nim nawias okrągły wciąż czeka na zamknięcie. Ciąg taki jak (( również nie jest zrównoważony, ponieważ nic nie zamyka tych dwóch nawiasów otwierających.
Napisz funkcję o nazwie isValid, która otrzymuje ciąg znaków s składający się wyłącznie ze znaków (, ), [, ], { i }, i zwraca true, gdy nawiasy są zrównoważone, a w przeciwnym razie false.
Nawiasy są zrównoważone, gdy każdy nawias zamykający pasuje do ostatniego wciąż otwartego nawiasu otwierającego, oba są tego samego rodzaju i na końcu nie pozostaje żaden otwarty nawias.
Ograniczenia: 1 ≤ s.length ≤ 10^4.
Funkcja
- arg1string
- Zwracaboolean
Przykłady
- Wejście
- arg1 = "[]{}()"
- Wyjście
- true
- Wejście
- arg1 = "{[()()]}"
- Wyjście
- true
- Wejście
- arg1 = "{(})"
- Wyjście
- false
+13 ukrytych testów przy wysłaniu
Podpowiedzi
Otwieraj je po kolei. Każda zdradza trochę więcej.
Czytaj ciąg od lewej do prawej. Gdy pojawi się nawias zamykający, który nawias otwierający może zamknąć?
Może zamknąć tylko nawias otwierający, który został otwarty jako ostatni i wciąż pozostaje otwarty. Ostatni otwarty, pierwszy zamknięty — dokładnie taką kolejność stos zachowuje.
Umieszczaj każdy nawias otwierający na stosie. Przy nawiasie zamykającym stos nie może być pusty, a jego wierzchołek musi być tego samego rodzaju; zdejmij go ze stosu i kontynuuj. Po zakończeniu ciągu jest on zrównoważony tylko wtedy, gdy stos jest pusty.
Pełne omówienie tego zadania pojawi się wkrótce.
Podobne zadania
Zadania oparte na tych samych pomysłach. Rozwiązanie dwóch lub trzech utrwala schemat.
Python
def isValid(s):
# Wpisz kod tutajPrzypadek 1
Przypadek 2
Przypadek 3
Wejście
arg1 = "[]{}()"Oczekiwane
true