LeetCode题解(1628):设计带解析函数的表达式树(Python)
题目:原题链接(中等)
标签:设计、树、二叉树、深度优先搜索
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 40ms (75.00%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
from abc import ABCclass Node(ABC):def __init__(self, val, left=None, right=None):self.val = valself.left = leftself.right = rightdef evaluate(self) -> int:if not self.left and not self.right:return self.valelse:mark = self.valleft_val = self.left.evaluate()right_val = self.right.evaluate()if mark == "+":return left_val + right_valelif mark == "-":return left_val - right_valelif mark == "*":return left_val * right_valelse:return int(left_val / right_val)def gatherAttrs(self):return ", ".join("{}: {}".format(k, getattr(self, k)) for k in self.__dict__.keys())def __str__(self):return self.__class__.__name__ + "{" + "{}".format(self.gatherAttrs()) + "}"class TreeBuilder(object):def buildTree(self, postfix: List[str]) -> 'Node':stack = []for t in postfix:if t.isnumeric():stack.append(Node(int(t)))else:right = stack.pop()left = stack.pop()stack.append(Node(t, left, right))return stack.pop()
LeetCode题解(1628):设计带解析函数的表达式树(Python)相关推荐
- LeetCode题解(1425):带限制的子序列和(Python)
题目:原题链接(困难) 标签:动态规划.贪心算法.有序映射 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(NlogK)O(NlogK)O(NlogK) O(N)O(N)O( ...
- LeetCode题解(0594):计算最长和谐子序列(Python)
题目:原题链接(简单) 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 368ms (91.63%) Ans 2 (Pytho ...
- [转载] LeetCode题解(面试16.22):兰顿蚂蚁(Python)
参考链接: Python | 兰顿的蚂蚁 题目:原题链接(中等) 标签:数组 解法时间复杂度空间复杂度执行用时Ans 1 (Python) O ( K ) O(K) O(K) O ( K ) O(K) ...
- LeetCode题解(1383):最大的团队表现值(Python)
题目:原题链接(困难) 标签:贪心算法.排序.堆 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(NlogN)O(NlogN)O(NlogN) O(N)O(N)O(N) 28 ...
- LeetCode题解(面试10.11):峰与谷(Python)
题目:原题链接(中等) 标签:数组.数学 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(1)O(1)O(1) 48ms (73.43%) Ans ...
- LeetCode题解(1533):找到最大整数的索引(Python)
题目:原题链接(中等) 标签:二分查找 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 236ms (100 ...
- LeetCode题解(1000):合并石头的最低成本(Python)
题目:原题链接(困难) 标签:动态规划 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N 4 ) O(N^4) O(N4) O ( N 3 ) O(N^3) O(N3) ...
- LeetCode 538. 把二叉搜索树转换为累加树 | Python
538. 把二叉搜索树转换为累加树 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/convert-bst-to-greater-tree 题目 给 ...
- 干货!表达式树解析框架(3)
最新设计请移步 轻量级表达式树解析框架Faller http://www.cnblogs.com/blqw/p/Faller.html 这应该是年前最后一篇了,接下来的时间就要陪陪老婆孩子了 关于表达 ...
最新文章
- 【移动通信】WIFI6 技术参数
- 红包实名的背后,支付实名制如何影响产品设计?
- 您拒绝了位置共享服务器,共享服务器拒绝访问
- VTK计算网格模型上的最短路径
- 素数环(dfsamp;amp;STL做法)HDU - 1016
- 【LeetCode笔记】72. 编辑距离(Java、字符串、动态规划)
- php分解质因数,用PHP如何实现将一个整数分解为质因数的积?
- 实战系列-Java中线程安全集合类(二)
- 服务的心跳机制与断线重连,Netty底层是怎么实现的?
- python程序设计是干什么的_python程序员有学设计模式的必要吗?
- SpringBoot项目引入前端模板时,CSS、JS、HTML文件无法加载的问题
- springcloud ip部署_php接入SpringCloud微服务框架
- 分别用switch语句和if语句实现键盘录入月份,输出对应的季节
- 微信开放平台、公众平台的区别
- 字符串要求字母、数字、特殊字符,至少有两项。正则表达式不好写,可以用这个方法实现。
- 键盘输入一个长方形的两个边长,输出该长方形的周长、面积和对角线。要用到Math类提供的数学方法。
- 外设驱动库开发笔记47:ADS111x系列ADC驱动
- 钉钉邮箱登录入口_阿里企业邮箱发信失败 报错:554reject by content_「阿里云企业邮箱_阿里企业邮箱」指定经销商热线:400-855...
- Phython基础语法知识点汇集
- 用类模板实现容器存储自定义数据类型(类似于STL里面的vector)