给定一个以字符串表示的任意嵌套的三元表达式,计算表达式的值。你可以假定给定的表达式始终都是有效的并且只包含数字 0-9, ?, :, T 和 F (T 和 F 分别表示真和假)。
注意:
- 给定的字符串长度 ≤ 10000。
- 所包含的数字都只有一位数。
- 条件表达式从右至左结合(和大多数程序设计语言类似)。
- 条件是
T和F其一,即条件永远不会是数字。 - 表达式的结果是数字
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"