Balanced Parenthesis Problem in Python
Understanding Balanced Parenthesis Problem
The balanced parenthesis problem involves checking whether a given string of brackets is balanced or not.
We will explore three different methods to solve this problem in Python.
Method 1: Using Stack
def is_balanced(expr): stack = [] mapping = {')': '(', '}': '{', ']': '['} for ch in expr: if ch in mapping.values(): stack.append(ch) elif ch in mapping.keys(): if not stack or stack.pop() != mapping[ch]: return False return not stack expr = "{[()]}" print("Balanced" if is_balanced(expr) else "Not Balanced")
Method 2: Using Counter
def is_balanced(expr): count = 0 for ch in expr: if ch == '(': count += 1 elif ch == ')': count -= 1 if count < 0: return False return count == 0 expr = "(())" print("Balanced" if is_balanced(expr) else "Not Balanced")
Method 3: Recursion
def check_balance(expr, index=0, count=0): if count < 0: return False if index == len(expr): return count == 0 if expr[index] == '(': return check_balance(expr, index + 1, count + 1) if expr[index] == ')': return check_balance(expr, index + 1, count - 1) return check_balance(expr, index + 1, count) expr = "((()))" print("Balanced" if check_balance(expr) else "Not Balanced")