C# Bracket
static int Bracket(string s)
{
var stack = new Stack<char>();
foreach (var v in s)
{
switch (v)
{
case ')':
if (stack.Count == 0 || stack.Pop() != '(')
{
return 0;
}
break;
case ']':
if (stack.Count == 0 || stack.Pop() != '[')
{
return 0;
}
break;
case '}':
if (stack.Count == 0 || stack.Pop() != '{')
{
return 0;
}
break;
default:
stack.Push(v);
break;
}
}
return stack.Count == 0 ? 1 : 0;
}
This uses a simple stack approach: open brackets go in, matching closing brackets pop them out.