力扣:150. 逆波兰表达式求值(Python3)
题目:
给你一个字符串数组
tokens,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。
注意:
- 有效的算符为
'+'、'-'、'*'和'/'。- 每个操作数(运算对象)都可以是一个整数或者另一个表达式。
- 两个整数之间的除法总是 向零截断 。
- 表达式中不含除零运算。
- 输入是一个根据逆波兰表示法表示的算术表达式。
- 答案及所有中间计算结果可以用 32 位 整数表示。
来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
示例:
示例 1:
输入:tokens = ["2","1","+","3","*"]
输出:9
解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9
示例 2:输入:tokens = ["4","13","5","/","+"]
输出:6解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6
示例 3:输入:tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
输出:22解释:
该算式转化为常见的中缀算术表达式为:((10 * (6 / ((9 + 3) * -11))) + 17) + 5 = ((10 * (6 / (12 * -11))) + 17) + 5 = ((10 * (6 / -132)) + 17) + 5 = ((10 * 0) + 17) + 5 = (0 + 17) + 5 = 17 + 5 = 22
解法:
使用栈操:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中。
知识点:
1.赋值顺序:赋值顺序是从左往右,例如num2, num1 = stack.pop(), stack.pop(),栈顶元素给num2,栈次顶元素给num1 。
2.str.startswith(prefix[, start[, end]]):如果prefix在str中以start开头,以end结尾,返回结果为True,否则返回False,start默认值为0。
3.eval(expression[, globals[, locals]]):expression表示表达式;globals表示变量作用域,全局命名空间,如果被提供,则必须是一个字典对象;locals表示变量作用域,局部命名空间,如果被提供,可以是任何映射对象。例如:x=7,eval( '3 * x' ),输出21。
代码:
class Solution:def evalRPN(self, tokens: List[str]) -> int:stack = []for token in tokens:if token.isdigit() or token.startswith('-') and len(token) > 1:stack.append(token)else:num2, num1 = stack.pop(), stack.pop()stack.append(int(eval(str(num1) + token + str(num2))))return int(stack[0])
相关文章:
力扣:150. 逆波兰表达式求值(Python3)
题目: 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或者另一…...
Tomcat运行日志乱码问题/项目用tomcat启动时窗口日志乱码
文章目录 一、问题描述:二、产生原因三、解决方法 一、问题描述: 项目在idea中运行时日志是正常的,用Tomcat启动时发现一大堆看不懂的文字,如 二、产生原因 产生乱码的根本原因就是编码和解码不一致,举个例子就是翻…...
Leetcode—199.二叉树的右视图【中等】
2023每日刷题(十九) Leetcode—199.二叉树的右视图 深度优先遍历实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(…...
微信小程序如何跳转到外部小程序
要在微信小程序中跳转到外部小程序,您可以使用微信小程序提供的 wx.navigateToMiniProgram 方法。以下是实现步骤: 在需要跳转的页面或组件中,编写触发跳转的逻辑,例如点击按钮: 替换 外部小程序的AppID 和 外部小程序…...
ElasticSearch集群环境搭建
1、准备三台服务器 这里准备三台服务器如下: IP地址主机名节点名192.168.225.65linux1node-1192.168.225.66linux2node-2192.168.225.67linux3node-3 2、准备elasticsearch安装环境 (1)编辑/etc/hosts(三台服务器都执行) vim /etc/hosts 添加如下内…...
[架构之路-250/创业之路-81]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业内的数据与数据库
目录 一、数据概述 1.1 数据 1.2 企业信息系统的数据 1.3 大数据 1.4 数据与程序的分离思想 1.5 数据与程序的分离做法 1.6 数据库的基本概念 1.7 企业数据来源 1.8 企业数据架构 二、常见的数据库类型 2.1 数据库分类 2.1 数据库类型 2.2 常见的数据库类型、应用…...
delaunay和voronoi图 人脸三角剖分
先获取人脸68个特征点坐标,其中使用了官方的预训练模型shape_predictor_68_face_landmarks.dat: import dlib import cv2predictor_path "shape_predictor_68_face_landmarks.dat" png_path "face.jpg"txt_path "points.tx…...
MySQL数据库之表的增删查改
目录 表的操作1.创建表创建表案例 2.查看表结构3.修改表4.删除表 表的操作 1.创建表 语法: CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明: field 表示列…...
(论文阅读11/100)Fast R-CNN
文献阅读笔记 简介 题目 Fast R-CNN 作者 Ross Girshick 原文链接 https://arxiv.org/pdf/1504.08083.pdf 目标检测系列——开山之作RCNN原理详解-CSDN博客 Fast R-CNN讲解_fast rcnn-CSDN博客 Rcnn、FastRcnn、FasterRcnn理论合集_rcnn fastrcnn fasterrcnn_沫念的博客…...
Git 标签(Tag)实战:打标签和删除标签的步骤指南
目录 前言使用 Git 打本地和远程标签(Tag)删除本地和远程 Git 标签(Tag)开源项目标签(Tag)实战打标签删除标签 结语开源微服务商城项目前后端分离项目 前言 在开源项目中,版本控制是至关重要的…...
React 底层 Fiber 架构 简单理解
一、 背景 JS 是引擎是单线程运行的;严格来说,JS 引擎和页面渲染引擎在同一渲染线程,两者互斥。那么就会遇到这样的一种情况:当前面一个任务长期霸占CPU,后面啥事也干不了,浏览器卡死,造成极差…...
使用 Python 进行自然语言处理第 4 部分:文本表示
一、说明 本文是在 2023 年 3 月为 WomenWhoCode 数据科学跟踪活动发表的系列文章中。早期的文章位于:第 1 部分(涵盖 NLP 简介)、第 2 部分(涵盖 NLTK 和 SpaCy 库)、第 2 部分(涵盖NLTK和SpaCy库…...
【LLM】大语言模型高效微调方案Lora||直击底层逻辑
大白话: DL的本质就是矩阵的乘法,就能实现LLM, 假设两个矩阵都很大,一个mxn,一个nxd的矩阵,m,n,d这几个数字可能几千甚至上万的场景,计算起来代价很大,如果我们可以small 这些数字,缩小到10甚至5这样的s…...
Qt for Android代码中输出日志
#include <QtDebug>qInfo() << "hello"; 如上,加入头文件(注意:这里的头文件是QtDebug,不是QDebug,也不知道啥时候改的,也不知道有啥区别,先这样吧)后使用qI…...
力扣刷题-二叉树-二叉树的递归遍历
本文讲解二叉树的前序遍历、后序遍历、中序遍历。 思路 每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法! 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加…...
VX-3R APRS发射试验
VX-3R本身是不带APRS功能的,不过可能通过外加TNC实现APRS功能。 有大佬已经用Arduino实现了相应的发射功能: https://github.com/handiko/Arduino-APRS 我要做的,就是简单修改一下代码,做一个转接板。 YEASU官方没有给出VX-3R的音…...
JAVA毕业设计109—基于Java+Springboot+Vue的宿舍管理系统(源码+数据库)
基于JavaSpringbootVue的宿舍管理系统(源码数据库)109 一、系统介绍 本系统前后端分离 本系统分为学生、宿管、超级管理员三种角色 1、用户: 登录、我的宿舍、申请调宿、报修申请、水电费管理、卫生检查、个人信息修改。 2、宿管: 登录、用户管理…...
CMU/MIT/清华/Umass提出生成式机器人智能体RoboGen
文章目录 导读1. Introduction2. 论文地址3. 项目主页4. 开源地址5. RoboGen Pipeline6. Experimental Results作者介绍Reference 导读 CMU/MIT/清华/Umass提出的全球首个生成式机器人智能体RoboGen,可以无限生成数据,让机器人7*24小时永不停歇地训练。…...
STM32:AHT20温湿度传感器驱动程序开发
注:温湿度传感器AHT20数据手册.pdf http://www.aosong.com/userfiles/files/AHT20%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E4%B9%A6(%E4%B8%AD%E6%96%87%E7%89%88)%20B1.pdf 一、分析AHT数据手册文档 (1).准备工作 1.新建工程。配置UART2 2.配置I2C1为I2C标准模式&…...
【Linux】第七站:vim的使用以及配置
文章目录 一、vim1.vim的介绍2.vim基本使用3.vim的命令模式常用命令4.底行模式 二、vim的配置 一、vim 1.vim的介绍 vim编辑器,用来文本编写,可以写代码 它是一个多模式的编辑器 它有很多的模,不过我们暂时先只考虑这三种模式 命令模式插入模…...
企业盈利密码,商业模式必读经典书籍推荐
很多人一提到“商业模式”,脑子里马上会想到诸如盈利、流量、融资、裂变、风口等一类的关键词。但真正问一句:“商业模式到底是什么?”往往又说不清。有人把商业模式理解成赚钱的方法;有人觉得是营销套路;还有人认为只…...
向量库+RAG+大模型在医疗AI中为何常显不足?揭秘图谱如何重塑医疗知识系统信任度!
文章指出,在医疗AI领域,单纯依赖向量库RAG大模型的经典路线已显不足。医疗场景对知识系统的要求远超“语义相似度”,涉及适应症、禁忌症、证据等级等严格约束。知识图谱在医疗AI中的重要性日益凸显,它不仅能够构建知识间的关系网络…...
2026年福建莆田大平层全屋高端定制选型指南
一、引言福建莆田近年来经济发展迅速,居民生活水平不断提高,大平层住宅逐渐成为高端改善型住房的热门选择。在全屋高端定制方面,消费者面临着众多品牌的选择。本指南旨在为莆田的大平层业主提供一份合规、靠谱且适配自身需求的高端定制品牌选…...
Prism Launcher:重新定义你的Minecraft启动体验
Prism Launcher:重新定义你的Minecraft启动体验 【免费下载链接】PrismLauncher A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) 项目地址: https://gitcode.com/gh_mirrors/…...
Crypto-JS WordArray 数据结构终极指南:深入解析加密算法的核心基石
Crypto-JS WordArray 数据结构终极指南:深入解析加密算法的核心基石 【免费下载链接】crypto-js JavaScript library of crypto standards. 项目地址: https://gitcode.com/gh_mirrors/cr/crypto-js 你是否曾在使用 Crypto-JS 进行加密操作时,困惑…...
wpr_simulation机器人仿真平台:架构设计与高级应用实战
wpr_simulation机器人仿真平台:架构设计与高级应用实战 【免费下载链接】wpr_simulation 项目地址: https://gitcode.com/gh_mirrors/wp/wpr_simulation wpr_simulation是一个基于ROS(机器人操作系统)的完整机器人仿真平台࿰…...
5个简单步骤:用YimMenu在GTA V中打造安全游戏体验
5个简单步骤:用YimMenu在GTA V中打造安全游戏体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...
Context Engineering 实战:别再往 context 里塞东西了
Context Engineering 实战:别再往 context 里塞东西了 为什么 token 塞满反而让 LLM 变蠢?四种核心策略 Python 代码实现 Agent 跑到第 15 步,突然开始做蠢事。 它把已经检查过的文件又检查了一遍,给出了和第 3 步完全矛盾的结论…...
Windows 11 Fixer终极指南:一键优化你的Windows 11系统体验
Windows 11 Fixer终极指南:一键优化你的Windows 11系统体验 【免费下载链接】Windows-11-Fixer A tool to "Fix" Windows 11 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-11-Fixer Windows 11 Fixer是一款专为Windows 11用户设计的系统优…...
探索AI编程工具的民主化:从技术壁垒到开源共享的技术演进之路
探索AI编程工具的民主化:从技术壁垒到开源共享的技术演进之路 【免费下载链接】cursor-vip cursor IDE enjoy VIP 项目地址: https://gitcode.com/gh_mirrors/cu/cursor-vip "技术不应成为特权,而应是推动文明进步的共同财富。" —— 开…...
