DedSec Project

05 stack matching — DedSec Project

def balanced(text): stack, pairs = , {')': '(', ' ': ' ', '}': '{'} for char in text: if char in '( {': stack.append(char) elif char in pairs: if not stack or stack.pop() != pairs char …

Source reference

def balanced(text):
    stack, pairs = [], {')': '(', ']': '[', '}': '{'}
    for char in text:
        if char in '([{': stack.append(char)
        elif char in pairs:
            if not stack or stack.pop() != pairs[char]: return False
    return not stack
assert balanced('([])') and not balanced('([)]')