Skip to content

Files

Latest commit

7a7d3f2 · Oct 20, 2020

History

History

0439.Ternary Expression Parser

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Oct 20, 2020
Oct 20, 2020

English Version

题目描述

给定一个以字符串表示的任意嵌套的三元表达式,计算表达式的值。你可以假定给定的表达式始终都是有效的并且只包含数字 0-9, ?, :, T 和 F (T 和 F 分别表示真和假)。

注意:

  1. 给定的字符串长度 ≤ 10000。
  2. 所包含的数字都只有一位数。
  3. 条件表达式从右至左结合(和大多数程序设计语言类似)。
  4. 条件是 T 和 F其一,即条件永远不会是数字。
  5. 表达式的结果是数字 0-9, T 或者 F

 

示例 1:

输入: "T?2:3"

输出: "2"

解释: 如果条件为真,结果为 2;否则,结果为 3。

 

示例 2:

输入: "F?1:T?4:5"

输出: "4"

解释: 条件表达式自右向左结合。使用括号的话,相当于:

             "(F ? 1 : (T ? 4 : 5))"                   "(F ? 1 : (T ? 4 : 5))"
          -> "(F ? 1 : 4)"                 或者     -> "(T ? 4 : 5)"
          -> "4"                                    -> "4"

 

示例 3:

输入: "T?T?F:5:3"

输出: "F"

解释: 条件表达式自右向左结合。使用括号的话,相当于:

             "(T ? (T ? F : 5) : 3)"                   "(T ? (T ? F : 5) : 3)"
          -> "(T ? F : 3)"                 或者       -> "(T ? F : 5)"
          -> "F"                                     -> "F"

 

解法

Python3

Java

...