#!/usr/bin/env python

__author__ = "bt3"

'''
Given a N different open and close braces in a string "( { [ } ] )".
How do you check whether the string has matching braces.
'''

from collections import Counter
def check_if_balance(string):
    '''
    >>> check_if_balance('{[[(])}]')
    True
    >>> check_if_balance('{[[()}]')
    False
    >>> check_if_balance('')
    True
    '''
    table = Counter()
    for i in string:

        index = str(ord(i))[0]
        if i in '{[(':
            table[index] += 1

        elif i in ')}]':
            table[index] -= 1

    for i in table.values():
        if i !=-0:
            return False
    return True



if __name__ == '__main__':
    import doctest
    doctest.testmod()