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

力扣: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库&#xf…...

【LLM】大语言模型高效微调方案Lora||直击底层逻辑

大白话: DL的本质就是矩阵的乘法,就能实现LLM, 假设两个矩阵都很大,一个mxn,一个nxd的矩阵,m,n,d这几个数字可能几千甚至上万的场景,计算起来代价很大,如果我们可以small 这些数字,缩小到10甚至5这样的s…...

Qt for Android代码中输出日志

#include <QtDebug>qInfo() << "hello"; 如上&#xff0c;加入头文件&#xff08;注意&#xff1a;这里的头文件是QtDebug&#xff0c;不是QDebug&#xff0c;也不知道啥时候改的&#xff0c;也不知道有啥区别&#xff0c;先这样吧&#xff09;后使用qI…...

力扣刷题-二叉树-二叉树的递归遍历

本文讲解二叉树的前序遍历、后序遍历、中序遍历。 思路 每次写递归&#xff0c;都按照这三要素来写&#xff0c;可以保证大家写出正确的递归算法&#xff01; 确定递归函数的参数和返回值&#xff1a; 确定哪些参数是递归的过程中需要处理的&#xff0c;那么就在递归函数里加…...

VX-3R APRS发射试验

VX-3R本身是不带APRS功能的&#xff0c;不过可能通过外加TNC实现APRS功能。 有大佬已经用Arduino实现了相应的发射功能&#xff1a; https://github.com/handiko/Arduino-APRS 我要做的&#xff0c;就是简单修改一下代码&#xff0c;做一个转接板。 YEASU官方没有给出VX-3R的音…...

JAVA毕业设计109—基于Java+Springboot+Vue的宿舍管理系统(源码+数据库)

基于JavaSpringbootVue的宿舍管理系统(源码数据库)109 一、系统介绍 本系统前后端分离 本系统分为学生、宿管、超级管理员三种角色 1、用户&#xff1a; 登录、我的宿舍、申请调宿、报修申请、水电费管理、卫生检查、个人信息修改。 2、宿管&#xff1a; 登录、用户管理…...

CMU/MIT/清华/Umass提出生成式机器人智能体RoboGen

文章目录 导读1. Introduction2. 论文地址3. 项目主页4. 开源地址5. RoboGen Pipeline6. Experimental Results作者介绍Reference 导读 CMU/MIT/清华/Umass提出的全球首个生成式机器人智能体RoboGen&#xff0c;可以无限生成数据&#xff0c;让机器人7*24小时永不停歇地训练。…...

STM32:AHT20温湿度传感器驱动程序开发

注&#xff1a;温湿度传感器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编辑器&#xff0c;用来文本编写&#xff0c;可以写代码 它是一个多模式的编辑器 它有很多的模&#xff0c;不过我们暂时先只考虑这三种模式 命令模式插入模…...

言语主旨题和细节判断题

由于气温上升、降雨改变和极端气候事件&#xff0c;热带森林正频繁遭受干旱。气候压力对亚马孙雨林尤为明显&#xff0c;反复发生的干旱事件增加了树木的死亡率。根据《自然》杂志发表的一项研究&#xff0c;亚马孙森林树木对干旱的耐受取决于不同物种&#xff0c;这影响到它们…...

Java Stream 中间操作全解析:惰性求值、无状态与有状态操作详解

一、前言 Stream API是Java 8的灵魂特性之一,它彻底改变了集合操作的写法——告别嵌套循环、简化逻辑判断,让代码更简洁、更易读、更高效。 但很多开发者刚接触Stream时,都会陷入一个误区:写了一串中间操作,却发现程序没有任何执行效果。其实核心原因很简单:Stream的中…...

Xinference-v1.17.1优化技巧:如何提升模型加载速度和推理性能,节省硬件资源

Xinference-v1.17.1优化技巧&#xff1a;如何提升模型加载速度和推理性能&#xff0c;节省硬件资源 你是否遇到过这样的困扰&#xff1a;每次加载大语言模型都要等待漫长的几分钟&#xff1f;推理过程中GPU内存爆满导致程序崩溃&#xff1f;或者看着高昂的云计算账单发愁&…...

别再只盯着代码了!手把手教你读懂Cartographer的PGM和YAML地图文件(附Notepad++实操)

从二进制到坐标系&#xff1a;Cartographer地图文件深度解析与实战调参指南 当你第一次打开Cartographer生成的.pgm和.yaml文件时&#xff0c;是否感觉像在解读某种外星密码&#xff1f;那些数字和参数背后&#xff0c;藏着机器人如何理解世界的秘密。本文将带你像侦探一样拆解…...

5分钟掌握Google Drive受保护PDF下载:免费开源解决方案终极指南

5分钟掌握Google Drive受保护PDF下载&#xff1a;免费开源解决方案终极指南 【免费下载链接】Google-Drive-PDF-Downloader 项目地址: https://gitcode.com/gh_mirrors/go/Google-Drive-PDF-Downloader 还在为Google Drive中那些"仅查看"权限的PDF文件而烦恼…...

从PERCLOS到‘三庭五眼’:聊聊疲劳检测算法里那些有趣的工程实现细节

从PERCLOS到‘三庭五眼’&#xff1a;疲劳检测算法的工程实现艺术 当算法工程师第一次看到"三庭五眼"这个美术概念被写入代码注释时&#xff0c;大概都会会心一笑——这正是工程实践中那些有趣的跨界融合时刻。疲劳检测系统看似是标准的计算机视觉任务&#xff0c;但…...

挖到宝!PFC2D 流固耦合常用案例合集,科研人速进

该模型是“PFC2D流固耦合常用案例合集”&#xff1a; 其中包括水力压裂、达西渗流等多个案例。 有需要学习和交流的伙伴可按需选取。 干货满满&#xff0c;是运用pfc5.0做流固耦合必不可少的科研学习资料性价比绝对超高 内容可编辑&#xff0c;觉得运行通畅 代码真实有效。最近…...

告别繁琐的pip安装,用快马平台快速搭建python数据分析原型

最近在做一个数据分析的小项目时&#xff0c;我深刻体会到了Python环境配置的繁琐。每次换电脑或者重装系统&#xff0c;都要重新安装Python、配置pip、解决各种依赖冲突&#xff0c;光是环境准备就能耗掉半天时间。特别是当需要快速验证一个想法时&#xff0c;这种等待简直让人…...

OFA-VE模型性能详解:OFA-Large在SNLI-VE测试集SOTA指标复现与解读

OFA-VE模型性能详解&#xff1a;OFA-Large在SNLI-VE测试集SOTA指标复现与解读 1. 引言&#xff1a;理解视觉蕴含的核心价值 视觉蕴含&#xff08;Visual Entailment&#xff09;是多模态人工智能领域的一个重要研究方向&#xff0c;它要解决的核心问题是&#xff1a;机器如何…...

深入解析MCU Systick:从基础配置到精准延时与系统时间获取实战

1. Systick定时器基础解析 Systick是Cortex-M内核内置的24位递减计数器&#xff0c;堪称MCU的"心跳发生器"。我第一次在STM32项目中使用它时&#xff0c;就像发现了一个隐藏的瑞士军刀——简单却功能强大。这个看似简单的定时器&#xff0c;实际上承担着三大核心功能…...