Valid Parentheses
Eine Klammerfolge ist ausgeglichen, wenn jede öffnende Klammer durch eine Klammer derselben Art geschlossen wird und die Paare ineinanderliegen, statt sich zu überlappen. Es gibt drei Arten: runde (), eckige [] und geschweifte {} Klammern.
Zum Beispiel ist {[()()]} ausgeglichen: Jedes Paar wird innerhalb des Paars geschlossen, das es umschließt. {(}) ist es jedoch nicht: Die geschweifte Klammer wird geschlossen, während die danach geöffnete runde Klammer noch offen ist. Eine Zeichenfolge wie (( ist ebenfalls nicht ausgeglichen, weil keine der beiden öffnenden Klammern geschlossen wird.
Schreibe eine Funktion namens isValid, die einen String s erhält, der nur aus den Zeichen (, ), [, ], { und } besteht, und true zurückgibt, wenn die Klammern ausgeglichen sind, andernfalls false.
Ausgeglichen bedeutet, dass jede schließende Klammer zur zuletzt geöffneten, noch offenen Klammer passt, beide von derselben Art sind und am Ende keine öffnende Klammer offen bleibt.
Einschränkungen: 1 ≤ s.length ≤ 10^4.
Funktion
- arg1string
- Gibt zurückboolean
Beispiele
- Eingabe
- arg1 = "[]{}()"
- Ausgabe
- true
- Eingabe
- arg1 = "{[()()]}"
- Ausgabe
- true
- Eingabe
- arg1 = "{(})"
- Ausgabe
- false
+13 versteckte Tests beim Einreichen
Tipps
Öffne sie nacheinander. Jeder verrät ein bisschen mehr.
Lies die Zeichenkette von links nach rechts. Wenn eine schließende Klammer erscheint, welche öffnende Klammer darf sie schließen?
Es kann nur die öffnende Klammer schließen, die zuletzt geöffnet wurde und noch offen ist. Zuletzt geöffnet, zuerst geschlossen: Genau diese Reihenfolge hält ein Stack ein.
Lege jede öffnende Klammer auf einen Stack. Bei einer schließenden Klammer darf der Stack nicht leer sein, und sein oberstes Element muss vom selben Typ sein; entferne es und fahre fort. Wenn die Zeichenfolge endet, ist sie genau dann ausgeglichen, wenn der Stack leer ist.
Eine vollständige Lösungserklärung zu dieser Aufgabe folgt bald.
Ähnliche Aufgaben
Aufgaben mit denselben Ideen. Wer zwei oder drei davon löst, behält das Muster.
Python
def isValid(s):
# Schreibe hier den CodeFall 1
Fall 2
Fall 3
Eingabe
arg1 = "[]{}()"Erwartet
true