#!/usr/bin/env python # coding: utf-8 # In[1]: def count_parenthesis(s): c = 0 for e in s: if e == '(': c += 1 if e == ')': c -= 1 return c def floor_position(s, f): c = 0 i = 0 for e in s: if e == '(': c += 1 i += 1 if e == ')': c -= 1 i += 1 if c == f: break if c != f: raise Exception('Floor not reached') return i # In[2]: assert count_parenthesis('(())') == 0 assert count_parenthesis('()()') == 0 assert count_parenthesis('(((') == 3 assert count_parenthesis('))(((((') == 3 assert count_parenthesis('())') == -1 assert count_parenthesis(')())())') == -3 # In[3]: import import_ipynb import helper s = helper.read_file("2015_1.txt") # In[4]: count_parenthesis(s) # In[5]: assert floor_position(')', -1) == 1 assert floor_position('()())', -1) == 5 # In[6]: floor_position(s, -1) # In[ ]: