Evaluate an expression with parentheses.
(expression: str)
| 204 | return [] |
| 205 | |
| 206 | def evaluate_expression(expression: str) -> List[str]: |
| 207 | """Evaluate an expression with parentheses.""" |
| 208 | |
| 209 | while "(" in expression: |
| 210 | start = expression.rfind("(") |
| 211 | end = expression.find(")", start) |
| 212 | sub_exp = expression[start + 1 : end] |
| 213 | |
| 214 | sub_result = evaluate_simple_expression(sub_exp) |
| 215 | |
| 216 | expression = ( |
| 217 | expression[:start] + "|".join(sub_result) + expression[end + 1 :] |
| 218 | ) |
| 219 | return evaluate_simple_expression(expression) |
| 220 | |
| 221 | result = evaluate_expression(expression) |
| 222 |
nothing calls this directly
no test coverage detected