# GeetCode Hub

Return the result of evaluating a given boolean `expression`, represented as a string.

An expression can either be:

• `"t"`, evaluating to `True`;
• `"f"`, evaluating to `False`;
• `"!(expr)"`, evaluating to the logical NOT of the inner expression `expr`;
• `"&(expr1,expr2,...)"`, evaluating to the logical AND of 2 or more inner expressions `expr1, expr2, ...`;
• `"|(expr1,expr2,...)"`, evaluating to the logical OR of 2 or more inner expressions `expr1, expr2, ...`

Example 1:

```Input: expression = "!(f)"
Output: true
```

Example 2:

```Input: expression = "|(f,t)"
Output: true
```

Example 3:

```Input: expression = "&(t,f)"
Output: false
```

Example 4:

```Input: expression = "|(&(t,f,t),!(t))"
Output: false
```

Constraints:

• `1 <= expression.length <= 20000`
• `expression[i]` consists of characters in `{'(', ')', '&', '|', '!', 't', 'f', ','}`.
• `expression` is a valid expression representing a boolean, as given in the description.

class Solution { public boolean parseBoolExpr(String expression) { } }