Claude Opus 4.6
Unrated4,505ms790 tokens
```python
def analyze_brackets(s):
matching = {')': '(', ']': '[', '}': '{'}
openers = set('([{')
closers = set(')]}')
stack = []
max_depth = 0
unmatched_close = 0
for char in s:
if char in openers:
stack.append(char)
if len(stack) > max_depth:
max_depth = len(stack)
elif char in closers:
if stack and stack[-1] == matching[char]:
stack.pop()
else:
unmatched_close += 1
unmatched_open = len(stack)
valid = (unmatched_open == 0 and unmatched_close == 0)
return {
'valid': valid,
'max_depth': max_depth,
'unmatched_open': unmatched_open,
'unmatched_close': unmatched_close
}
```