2
def minOperationsToFlip(self, expression: str) -> int:5
for i in reversed(range(len(expression))):6
if expression[i] == ")":8
elif expression[i] == "(":12
"""Return value and min op to change value."""14
return int(expression[lo]), 115
if expression[hi] == ")" and loc[hi] == lo:16
return fn(lo + 1, hi - 1) # strip parenthesis17
mid = loc.get(hi, hi) - 118
v, c = fn(mid + 1, hi)19
vv, cc = fn(lo, mid - 1)20
if expression[mid] == "|":28
else: # expression[k] == "&"38
return fn(0, len(expression) - 1)[1]