当前位置: 首页 > news >正文

LeetCode 736. Parse Lisp Expression

给出类似于lisp的表达式(前序表达式),新加入了let赋值语句

注意:把每一句子表达式都抽象成了Exp对象,一个父exp包含了1个或者多个子Exp,从后向前遍历压栈,到最后统一出栈计算,妙啊!

class Solution {class Exp {Stack<Exp> exps;String op;Exp parent;Exp(Exp from) {this.exps = new Stack<>();this.parent = from;}int evaluate(Map<String, Integer> vars) {if (op.equalsIgnoreCase("add")) {return exps.pop().evaluate(vars) + exps.pop().evaluate(vars);} else if (op.equalsIgnoreCase("mult")) {return exps.pop().evaluate(vars) * exps.pop().evaluate(vars);} else if (op.equalsIgnoreCase("let")) {Map<String, Integer> nextVars = new HashMap<>(vars);while (exps.size()>1) {String varName = exps.pop().op;int val = exps.pop().evaluate(nextVars);nextVars.put(varName, val);}return exps.pop().evaluate(nextVars);} else {if (Character.isLetter(op.charAt(0))) {return vars.get(op);} else {return Integer.parseInt(op);}}}}Exp buildTree(String exp) {Exp root = new Exp(null), cur = root;int n = exp.length()-1;while (n >=0) {char c = exp.charAt(n);if (c==')') {Exp next = new Exp(cur);cur.exps.push(next);cur = next;} else if (c=='(') {cur.op = cur.exps.pop().op;cur = cur.parent;} else if (c != ' '){int pre = n;while (pre>=0 && exp.charAt(pre)!='(' && exp.charAt(pre)!=' ')pre--;Exp next = new Exp(cur);next.op = exp.substring(pre+1, n+1);cur.exps.push(next);n=pre+1;}n--;}return root.exps.pop();}public int evaluate(String exp) {return buildTree(exp).evaluate(new HashMap<>());}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35354.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Visual Studio

Visual Studio 2019 Enterprise&#xff08;企业版&#xff09;&#xff1a;BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional&#xff08;专业版&#xff09;&#xff1a;NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...

gRPC-go源码剖析五十五之客户端一侧,是如何处理取消功能的?

本篇文章我们深入源码,重点分析一下grpc客户端一侧是如何来处理取消功能的; 1、取消功能是如何触发的?我们以客户端测试用例说明; 进入examples/features/cancellation/client/main.go文件中 1.func main() {2. //---省略掉不相关代码3. c := pb.NewEchoClient(conn...

数据结构与算法常用总结

数据结构1.常用数据结构及其原理1.1 数组1.2 链表1.3 队列1.4 栈1.5 哈希表1.6 二叉树2.常见数据结构面试题2.1数组和链表的区别2.2 排序算法2.3 栈结构与队列的区别1.常用数据结构及其原理 1.1 数组 每一个数组元素的位置由数字编号&#xff0c;称为下标或者索引(index)。大根…...

Linux中文件的分类

在Linux中&#xff0c;一切皆文件&#xff0c;Linux系统中文件的分类如下&#xff1a; 1、文本文件。文件组成主要是ASCII字符&#xff0c;文件作用是记录普通文件&#xff0c;如shell脚本文件、源文件、TXT文件等。 2、二进制文件。文件由二进制0、1组成&#xff0c;文件作用是…...

你花了多久弄明白架构设计?多个java应用同时访问数据库

01 分布式限流&#xff1a;NginxZooKeeper 1.1 分布式限流之Nginx 请解释一下什么是 Nginx? 请列举 x Nginx 的一些特性。 请列举 x Nginx 和 和 Apache 之间的不同点 请解释 x Nginx 如何处理 P HTTP 请求。 在 x Nginx 中&#xff0c;如何使用未定义的服务器名称来阻止…...

易-----

易 本人00后&#xff0c;近期在学子平、八字命理、易经玄学方面&#xff0c;如也是玄学爱好者&#xff0c;可以加联系方式一起讨论、学习&#xff0c;年龄相仿更好。 微信&#xff1a;1783176946 事实上还有两种《易经》&#xff0c;一种叫《连山易》&#xff0c;一种叫《归藏…...

2021-8-23 18点00 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 日线开始反弹,但是会有反复,周线继续确认底部。

日线级别&#xff1a;下跌尾部可能有反复&#xff0c;大概率震荡消耗&#xff0c;有概率出现最后一跌&#xff0c;释放能量。 周线级别: 第一次确定短期底部&#xff0c;预计震荡方式往上&#xff0c;量能较弱&#xff0c;此处为为长期趋势线附近支撑&#xff0c;值得守住。 …...

5852. 最小化目标值与所选元素的差 记忆化dfs,关键在于你怎么定义变量

目录解题思路代码解题思路 当时是个周赛题&#xff0c;试图利用爆搜解决的。。。。 显然不行&#xff0c;然后又听有人说是个背包QAQ dl都欺负我(╥╯^╰╥)嘤嘤嘤 不过了解了二维数组第一维放行数第二维放和&#xff0c;&#xff0c;&#xff0c;瞬间感觉记忆化搜索又可以…...

Spring面试题复习(一)

Spring面试题复习&#xff08;一&#xff09; 一、Spring是什么&#xff1f; Spring是一个轻量级的开发框架&#xff0c;常说的Spring框架&#xff0c;就是指Spring Framework&#xff0c;它是很多模块的集合&#xff0c;这些模块可以帮助我们开发人员简化开发&#xff0c;这…...

用Python搭建股票舆情分析系统

写在前面 下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统&#xff0c;其中将先通过金融界网站爬取指定股票在一段时间的新闻&#xff0c;然后通过百度情感分析接口&#xff0c;用于评估指定股票的正面和反面新闻的占比&#xff0c;以此确定该股票是处于利好还是…...

_____

sel,1SELECT * FROM table sel,2SELECT * FROM table WHERE name 强哥 sel,3SELECT * FROM table ORDER BY updateTime DESC hui,1会 paiban,1排班 beifen,1备份 gaihao,1改好 dai,1待 tu,1图 dangran,1当然 minxian,1明显 mingxian,1明显 suji,1苏稽 shizhan,1适展 gaihaole…...

源码分析MyCat专栏

源码分析MyCAT1.6目录 1、源码研究mycat之mysql通信协议篇之握手认证协议 2、源码分析mycat1.6之mysql通信协议篇之COM_QUERY(SELECT语句报文解析) 3、源码分析mycat1.6之mysql通信协议篇之存储过程调用 4、源码研读Mycat1.6之网络篇---前端线程模型&#xff08;应用程序与…...

Python函数参数(必选、默认、可变、关键字)

Python函数参数&#xff08;必选、默认、可变、关键字&#xff09; 【参考】&#xff1a;https://blog.csdn.net/pql925/article/details/80999086 1. 必选参数 必选参数&#xff0c;即使用普通变量标识符标识形参&#xff0c;没有默认赋值或*星号。 def power2(x):return x*…...

如何快速打好Java基础 初学者常用哪些工具

如何快速打好Java基础&#xff0c;初学者常用哪些工具&#xff1f;从来不认为学好技术能和快速划上等号&#xff0c;对于技术而言&#xff0c;快速掌握的只是大体的技术框架&#xff0c;想要深入学习&#xff0c;还是需要时间的沉淀和技术经验的积累。 对于初学者而言&#xff…...

Android常见控件

设置进度条&#xff0c;加载 设置通知 权重分配的是剩余的空间...

齐发78EX重大事件|荣获美国加拿大双国MSB牌照

齐发78EX LTD在2021年7月已同时获得美国及加拿大MSB合规运营牌照&#xff0c;标志着齐发78EX全球合规化的布局已经进入了一个新阶段。未来&#xff0c;齐发78EX也将继续致力于全球和规划进程的推进&#xff0c;面对全球化唯一的道路就是进一步获得全球投资者的信任&#xff0c;…...

第三次作业

第五章 一、会话技术概括 存储客户端的状态 由一个问题引出今天的内容&#xff0c;例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的&#xff0c;也就是说每个客户访问服务器端资源时&#xff0c;服务器并不知道该客户端是谁&#xff0c;所以需要…...

PHP进阶面试题

比较一下php和go的区别&#xff1f; Go是一种静态类型语言。PHP是一种动态类型语言。 PHP 每个请求进来时都会创建 fpm-worker 进程&#xff0c;从而导致系统并发高时 CPU 会产生频繁创建进程的开销&#xff0c;而 Go 不会。 golang 是先编译&#xff0c;后执行。由于编译方面…...

目标检测评价指标(一文看懂)

目标检测评价指标之——Precision&#xff0c;Recall&#xff0c;IOU&#xff0c;AP&#xff0c;mAP 看了一些介绍目标检测评价指标的文章&#xff0c;在此做一个小总结&#xff0c;供大家参考。 文章目录目标检测评价指标之——Precision&#xff0c;Recall&#xff0c;IOU&a…...

联系我们

谢谢您对腾达会计的关注如果您有任何问题或意见请通过以下方式和我们联络冠美会计地址 北京市丰台区总部基地汉威国际广场一区625-626室联系方式 免费服务热线:座机: 400-616-1111111-562xxxxx在线咨询 免费拨打...

Python numpy.unpackbits函数方法的使用

NumPy&#xff08;Numerical Python的缩写&#xff09;是一个开源的Python科学计算库。使用NumPy&#xff0c;就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数&#xff0c;涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中unpackbits方法…...

什么是状态模式

...

Linux的概述

Linux的概述&#xff1a; Unix Unix是一个强大的多用户、多任务操作系统 于1969年在AT&T的贝尔实验室开发 UNIX的商标权由国际开放标准组织&#xff08;The Open Group&#xff09;所拥有 UNIX操作系统是商业版&#xff0c;需要收费&#xff0c;价格比Microsoft Windows正…...

6_游戏框架搭建

游戏框架搭建 目标 —— 使用 面相对象 设计 飞机大战游戏类 目标 明确主程序职责实现主程序类准备游戏精灵组 01. 明确主程序职责 回顾 快速入门案例&#xff0c;一个游戏主程序的 职责 可以分为两个部分&#xff1a; 游戏初始化游戏循环 根据明确的职责&#xff0c;设计…...

DDD领域驱动设计学习笔记

...

gRPC-go源码剖析五十五之客户端一侧,是如何处理取消功能的?

本篇文章我们深入源码,重点分析一下grpc客户端一侧是如何来处理取消功能的; 1、取消功能是如何触发的?我们以客户端测试用例说明; 进入examples/features/cancellation/client/main.go文件中 1.func main() {2. //---省略掉不相关代码3. c := pb.NewEchoClient(conn...

黑马-数据结构

一、数据结构与算法概述 1.1. 什么是数据结构 1.1.1. 数据结构的内容 一般而言&#xff0c;数据结构的选择首先会从抽象数据类型的选择开始。一个设计良好的数据结构&#xff0c;应该在尽可能使用较少的时间与空间资源的前提下&#xff0c;为各种临界状态下的运行提供支持。数…...

PCB设计中电流与线宽的关系

原文链接&#xff08;点击原文链接更多精彩学习文章和学习内容&#xff09;&#xff1a;http://blog.bools.cn/archives/1262 PCB设计中电流与线宽的关系一、PCB设计铜铂厚度、线宽和电流关系二、PCB电流与线宽三、从图像中确定线宽四、 经验公式五、在PCB设计中线宽选择的经验…...

Redis 内存淘汰机制

Redis 内存淘汰机制 【问题一】 过期字典的方法很好&#xff0c;但还是有可能会出问题。因为定期删除和惰性删除还是有可能造成大量过期的 key 没被删除&#xff0c;堆积在内存中。非常容易就 内存溢出了 Out of memory。 【问题二】 如何保证 Redis 中的数据都是热点数据 &am…...

过一点求圆的两个切线方程标准式

最近在做一个避障算法&#xff0c;其中一个步骤是过一点求圆的两个切线方程&#xff0c;当时居然卡了挺长时间&#xff0c;特来记录一下&#xff0c;顺便复习一遍高中解析几何知识。 假设起始点坐标&#xff0c;圆心坐标&#xff0c;直线方程 把起始点坐标带入 移项 于是直线方…...

小杜机器人线下店_小度首家官方体验店开业啦!线下体验小度系列产品 智能家居任你玩...

百度发力线下新零售&#xff0c;升级AI时代的消费级产品体验。11月5日&#xff0c;小度官方体验店在百度科技园店正式开业&#xff0c;还为用户准备了“捞出百度第一条锦鲤”、“游戏抽奖”、“满赠活动”、“员工内部价”等多重惊喜。同时&#xff0c;百度与迪信通UP门店合作的…...

小杜机器人线下店_小度首家官方体验店开业啦!线验小度全线智能

百度发力线下新零售&#xff0c;升级AI时代的消费级产品体验。11月5日&#xff0c;小度官方体验店在百度科技园店正式开业&#xff0c;还为用户准备了“捞出百度第一条锦鲤”、“游戏抽奖”、百度发力线下新零售&#xff0c;升级AI时代的消费级产品体验。11月5日&#xff0c;小…...

苹果称只保证直营店iPad补差价 近1周投诉急增

3月3日&#xff0c;苹果发布iPad2&#xff0c;并表示此前两周内购买的iPad一代可退1100元差价。记者昨日了解到&#xff0c;部分从经销商处购得iPad的消费者并不能享受此“待遇”。苹果中国公司公关负责人昨日表示&#xff0c;苹果只能保证消费者在苹果商店购买能享受到补偿&am…...

壹账通发布智能供应链金融平台,主攻5大技术应用场景

壹账通供应链金融研发团队副总经理 连理 雷锋网AI金融评论了解到&#xff0c;近期&#xff0c;以大数据、区块链、云平台、人工智能为底层技术的智能供应链金融迎来了加速升温。 9月4日&#xff0c;央行数字货币研究所、央行深圳市中心支行推动“粤港澳大湾区贸易金融区块链平…...

在冒险中打拼:教师到手机大亨的打拼路

刘东海&#xff0c;迪信通集团创办人董事长兼总裁&#xff0c;中国经营手机销售的零售企业店面总量超过40000家。从1993年至2007的14年&#xff0c;他以借来的5000元起家&#xff0c;截至2007年迪信通集团的年营业额已经达到70亿元。 1966年&#xff0c;出生于四川省广安市武胜…...

C#个推SDK推送安卓+iOS

下载个推SDK&#xff0c;找到这两个dll直接引用。 using引用 using com.gexin.rp.sdk.dto; using com.igetui.api.openservice; using com.igetui.api.openservice.igetui; using com.igetui.api.openservice.igetui.template; using com.igetui.api.openservice.igetui.temp…...

互联网日报 | 5月7日 星期五 | 街电与搜电完成合并;IBM发布2nm芯片制程;首届中国国际消费品博览会开幕...

今日看点✦ 小米第一季度欧洲智能手机市场份额超过苹果&#xff0c;首次达到第二✦ 江苏省国资、南京市国资与苏宁成立200亿新零售发展基金✦ 街电、搜电完成合并&#xff0c;两大品牌母公司定名“竹芒科技”✦ 蚂蚁链与奇瑞商用车签署战略合作协议&#xff0c;推出“车链通”技…...

终于感觉上海移动有点便宜了(上海广播频率)

毕业2年了&#xff0c;都不能用上在学校时的便宜话费。现在移动的动感地带长途也只要2毛9。hoho前天晚上火线到正大广场的迪信通买了nokia6030&#xff0c;只花了988&#xff0c;还送200话费&#xff0c;真是捡到了一点点便宜。可以听广播&#xff0c;而且很方便&#xff0c;现…...

微软签约神州数码迪信通 1年内将开35家概念店

微软签约神州数码迪信通 1年内将开35家概念店 http://www.sina.com.cn 2007年10月20日 02:46 新京报未来一年新开35家Windows Mobile概念店 本报讯 (记者 彭梧) 微软中国昨天在北京宣布与迪信通及神州数码达成协议&#xff0c;将在未来一年的时间内&#xff0c;在全国多个一、…...

诺基亚联手迪信通 力推内置仙剑三版5230手机

12月20日&#xff0c;诺基亚与迪信通在上海联手推出诺基亚5230仙剑奇侠传三限量版套装。《仙剑奇侠传三》中新生代偶像胡歌、刘诗诗作为嘉宾与所有到场Fans见面&#xff0c;并进行现场签售。诺基亚华东区总经理曹纹察表示&#xff1a;“诺基亚仙剑奇侠传三限量套装是我们与迪信…...

使用JLINK给GD32下载程序

使用JLINK给GD32下载程序关于GD32单片机需要的工具和软件包①Jlink仿真器一个②相关软件包下载准备①选择好芯片②在DEBUG中选择JLINK下载现象总结关于GD32单片机 GD32是兆易创新基于Arm Cortex-M内核和RISC-V内核&#xff0c;推出的32位通用微控制器&#xff0c;对比了下两者…...

可汗学院统计学笔记(一)

基本概念 1.总体&#xff08;Population&#xff09;与样本&#xff08;Sample&#xff09; 总体是研究对象的整体&#xff0c;通常数目很大&#xff0c;直接对总体进行分析费时费力。因此通过对总体进行抽样得到可以代表总体的样本。注意&#xff1a;采样过程应该是随机的&am…...

可汗统计学习笔记

12.样本和总体 sample样本&#xff0c;population总体&#xff0c;mean均值 总体是一个概念&#xff0c;一般来说总体是不可以全部测量的&#xff0c;所以我们只取一部分来测量这就是样本。例如&#xff1a;我们不可能测量所有人的身高&#xff0c;但是我们可以在所有人中取一…...

统计学——可汗

目录 List1&#xff08;1-8&#xff09; 2.极差、中程数 List5&#xff08;9-14&#xff09; 9.箱线图 11.集中趋势 12.样本和总体 13.总体方差 14.样本方差 List6&#xff08;15-16&#xff09; 15.标准差 16.储方差公式 Lsit7&#xff08;17-21&#xff09; 17.随…...

Kernel怎么跳转到Android:linux与安卓的交界

上一篇写了Uboot怎么到Linux kernel&#xff0c;这一章来看看linux kernel怎么到Android的。 虽然是零零碎碎的学习了一些关于Linux的知识&#xff0c;但是对于这个部分基本上没有站在系统的角度去看过。 1、前言 kernel的启动主要分为两个阶段。 1、阶段一 从入口跳转到s…...

Origin 2022安装教程(附下载链接)

链接&#xff1a;https://pan.baidu.com/s/1c6YMztrGzh3JSXmlyOuJWQ 提取码&#xff1a;dqcc 安装教程 1.打开文件夹&#xff0c;右键setup 以管理员身份运行。 2.点击下一步 3.点击我接受&#xff0c;点击下一步 4.选择安装试用版&#xff0c;点击下一步 5.点击确定 6.点击…...

Origin学生版的获取方法和安装方法

前提&#xff1a;有一个edu.cn结尾的邮箱&#xff08;有的学校和科研院所不是该结尾&#xff0c;也可以申请&#xff0c;具体见链接&#xff09; 官方提供的获取方法和安装方法如下&#xff1a; OriginPro 免费学习版指南石墨文档是一款轻便、简洁的在线协作文档工具&#xf…...

【PTA】7-1 查找书籍

题样 #include<stdio.h> #include<stdlib.h> typedef struct//创建结构体 {char name[31];double price;//float报错-.- } shuji; int main() {int n,i;char t;shuji shu[10];scanf("%d",&n); // if(n0)return 0;scanf("%c",&t);…...

从 sourcemap 中获取源码

使用 paazmaya/shuji: Reverse engineering JavaScript and CSS sources from sourcemaps 可以从 sourcemap 中获取源码。 一个故事&#xff1a; 今天同事在完全没将代码加到过 stage 的情况下按了 VSCode 的Discard All Changes&#xff0c;然后这个版本的所有代码都丢失了&am…...

source map 文件还原

source map文件还原 有个Vue项目只有发布后的文件&#xff0c;需要修改部分功能&#xff0c;只能通过source map进行还原。网上有几个这样的还原工具&#xff0c;但多数都没法用了&#xff0c;记录一下自己的操作过程。 1、restore-source-tree 这个工具可以还原目录&#x…...