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.