439. Ternary Expression Parser
来源:互联网 发布:知乎中文夹杂英文 编辑:程序博客网 时间:2024/06/06 16:38
Given a string representing arbitrarily nested ternary expressions, calculate the result of the expression. You can always assume that the given expression is valid and only consists of digits 0-9, ?, :, T and F (T and F represent True and False respectively).
Note:
The length of the given string is ≤ 10000.
Each number will contain only one digit.
The conditional expressions group right-to-left (as usual in most languages).
The condition will always be either T or F. That is, the condition will never be a digit.
The result of the expression will always evaluate to either a digit 0-9, T or F.
Example 1:
Input: “T?2:3”
Output: “2”
Explanation: If true, then result is 2; otherwise result is 3.
Example 2:
Input: “F?1:T?4:5”
Output: “4”
Explanation: The conditional expressions group right-to-left. Using parenthesis, it is read/evaluated as:
"(F ? 1 : (T ? 4 : 5))" "(F ? 1 : (T ? 4 : 5))" -> "(F ? 1 : 4)" or -> "(T ? 4 : 5)" -> "4" -> "4"
Example 3:
Input: “T?T?F:5:3”
Output: “F”
Explanation: The conditional expressions group right-to-left. Using parenthesis, it is read/evaluated as:
"(T ? (T ? F : 5) : 3)" "(T ? (T ? F : 5) : 3)" -> "(T ? F : 3)" or -> "(T ? F : 5)" -> "F" -> "F"
这道题是三元表达式解析程序,我的思路是从后面开始遍历,遇到?就求解答案,然后再把答案赋值到?之前,接着把这个式子删除,然后继续寻找?直达字符串只剩一个字符。
class Solution {public: string parseTernary(string expression) { while(expression.length()>1) { int i=expression.length()-1; while(expression[i]!='?') i--; char c; if(expression[i-1]=='T') c=expression[i+1]; else c=expression[i+3]; expression[i-1]=c; expression.erase(i,4); } return expression; }};
- 439. Ternary Expression Parser
- 439. Ternary Expression Parser
- leetcode 439. Ternary Expression Parser
- LeetCode 439. Ternary Expression Parser
- Leetcode 439. Ternary Expression Parser (递归,栈)
- [Leetcode] 439. Ternary Expression Parser 解题报告
- Ternary Expression
- Convert a Ternary expression to a Binary tree structure
- v8::internal::Parser中的Expression解析
- 表达式剖析器(THE EXPRESSION PARSER)
- v8::internal::Parser中的Expression解析
- Ternary Password
- Ternary Calculation
- Ternary Password
- Ternary Tree
- Ternary Calculation
- [[ expression ]]
- expression
- TPatch动态补丁系统(iOS)
- 8086 汇编语言 走迷宫之 左手法则
- 文本模式/二进制模式 && 文本文件/二进制文件(编码系列-3)
- NMEA GPRMC 格式图解,NMEA 工具的比较
- Mac显示隐藏文件
- 439. Ternary Expression Parser
- android service详解
- leetcode 219: Contains Duplicate II
- java知识体系整理
- android broadcast详解
- 228. Summary Ranges
- 高性能服务器架构思路(四)——编码复杂度和通信
- 十分钟搞定酷炫动画,Android自定义 View 入门
- 8086汇编贪吃蛇(随机食物+速度递增)