#1106
Parsing A Boolean Expression
expert · 1000 · lc hard +32 · verified · 69.8% accepted · 1,923 likes · top 78%
Description
A boolean expression evaluates to true or false. It can be:
- 't' — evaluates to true.
- 'f' — evaluates to false.
- '!(subExpr)' — logical NOT of subExpr.
- '&(subExpr1, subExpr2, ..., subExprn)' — logical AND of all inner expressions.
- '|(subExpr1, subExpr2, ..., subExprn)' — logical OR of all inner expressions.
Given a valid string expression, return its boolean evaluation result.
Example 1:
Input: expression = "&(|(f))"
Output: false
Explanation:
First, evaluate |(f) --> f. The expression is now "&(f)".
Then, evaluate &(f) --> f. The expression is now "f".
Finally, return false.
Example 2:
Input: expression = "|(f,f,f,t)"
Output: true
Explanation: The evaluation of (false OR false OR false OR true) is true.
Example 3:
Input: expression = "!(&(f,t))"
Output: true
Explanation:
First, evaluate &(f,t) --> (false AND true) --> false --> f. The expression is now "!(f)".
Then, evaluate !(f) --> NOT false --> true. We return true.
Code
1
2
3