from typing import List
def isBalanced(S: str) -> bool:
stack = []
bracket_map = {')': '(', '}': '{', ']': '['}
for char in S:
if char in bracket_map.values():
stack.append(char)
elif char in bracket_map:
if stack and stack[-1] == bracket_map[char]:
stack.pop()
else:
return False
return not stack