1106. 解析布尔表达式

原题

给你一个以字符串形式表述的布尔表达式 expression,返回该式的运算结果。有效的表达式遵循以下约定:

  • “t”,运算结果为 True;
  • “f”,运算结果为 False;
  • “!(expr)”,运算过程为对内部表达式 expr 进行逻辑非(NOT)运算;
  • “&(expr1,expr2,…)”,运算过程为对 2 个或以上内部表达式 expr1, expr2, … 进行逻辑与(AND)运算;
  • “|(expr1,expr2,…)”,运算过程为对 2 个或以上内部表达式 expr1, expr2, … 进行逻辑或(OR)运算

示例 1:

示例 2:

示例 3:

示例 4:

提示:
+ 1 <= expression.length <= 20000
+ expression[i] 由 {‘(‘, ‘)’, ‘&’, ‘|’, ‘!’, ‘t’, ‘f’, ‘,’} 中的字符组成。
+ expression 是以上述形式给出的有效表达式,表示一个布尔值。

解题

这里利用堆栈来做, 其实不难, 用ex保存整个计算过程, subEx 保存当前子串的计算过程, 最终拼接成答案

Hello world!
文章已创建 209

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部