Python :: Aufgabe #52 :: Lösung #1
1 Lösung

#52
Klammerebenen checken
Anfänger - Python
von bibir
- 03.09.2014 um 09:22 Uhr
Ein übergebener String enthält neben anderen (bedeutungslosen) Zeichen öffnende und schließende Klammern, wobei die Klammern rund(), eckig [] oder geschweift {} sein können.
In einem Programm/Skript ist zu überprüfen, ob Klammern korrekt gesetzt wurden. Dabei gilt:
- jede sich öffnende Klammer wird von einer Klammer gleicher Art wieder geschlossen
- jede sich schließende Klammer wurde von einer Klammer gleicher Art geöffnet
- ein Klammernpaar darf nicht durch andere Klammernpaare überschnitten werden
Beispiele:
(([[]])) => true
([)] => false
([]]) => false
(())) => false
(() => false
({[])} => false
Gar keine Klammern => true
In einem Programm/Skript ist zu überprüfen, ob Klammern korrekt gesetzt wurden. Dabei gilt:
- jede sich öffnende Klammer wird von einer Klammer gleicher Art wieder geschlossen
- jede sich schließende Klammer wurde von einer Klammer gleicher Art geöffnet
- ein Klammernpaar darf nicht durch andere Klammernpaare überschnitten werden
Beispiele:
(([[]])) => true
([)] => false
([]]) => false
(())) => false
(() => false
({[])} => false
Gar keine Klammern => true
#1

von m4x0r (110 Punkte)
- 06.09.2014 um 15:15 Uhr

def check_brackets(expr): if not len(expr) % 2 == 0: return False stack = [] associated_bracks = {'(': ')', '[': ']', '{': '}'} for i in range(0, len(expr)): c = expr[i] if c in associated_bracks.keys(): stack.append(c) elif not stack or c != associated_bracks[stack.pop()]: return False return True test_expressions = ['(([[]]))', '([)]', '([]])', '(()))', '(()', '({[])}', ''] for expr in test_expressions: print("'" + expr + "'", "=>", check_brackets(expr))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1