PYTHON STACK FUNCTION count the valid number of brackets Returns the total number of valid brackets in the string
import sys def error(c, line_number, column_number): print 'Error: unmatched', c, 'line', line_number, 'column', column_number def check(stack, wanted, c, line_number, column_number): if stack[-1] != wanted: error(c, line_number, column_number) else: stack.pop() def check_parentheses(f): stack = list() line_number = 0 for line in f: line_number = line_number + 1 column_number = 0 for c in line: column_number = column_number + 1 if c == '(' or c == '[' or c == '{': stack.append(c) elif c == ')': check(stack, '(', ')', line_number, column_number) elif c == ']': check(stack, '[', ']', line_number, column_number) elif c == '}': check(stack, '{', '}', line_number, column_number) def main(): filename = sys.argv[1] try: f = file(filename) except IOError: sys.stderr.write('Error: Cannot open file %s' % filename) sys.exit(1) check_parentheses(f) f.close() main()