3302. 表达式求值, 栈的应用
3302. 表达式求值 - AcWing题库
给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。
注意:
- 数据保证给定的表达式合法。
- 题目保证符号
-只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2)之类表达式均不会出现。 - 题目保证表达式中所有数字均为正整数。
- 题目保证表达式在中间计算过程以及结果中,均不超过 231−1。
- 题目中的整除是指向 0 取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小于 0 的结果向上取整,例如 5/(1−4)=−1。
- C++和Java中的整除默认是向零取整;Python中的整除
//默认向下取整,因此Python的eval()函数中的整除也是向下取整,在本题中不能直接使用。
输入格式
共一行,为给定表达式。
输出格式
共一行,为表达式的结果。
数据范围
表达式的长度不超过 105。
输入样例:
(2+2)*(1+1)
输出样例:
8
解析 :
AcWing 3302. 表达式求值(每日一题·春季) - AcWing
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<math.h>
#include<map>
#include<unordered_map>
using namespace std;
typedef long long LL;
const int N = 1e5 + 5, M = 3e5 + 5;
stack<int>num;
stack<char>op;
string s;void eval() {int a = num.top(); num.pop();int b = num.top(); num.pop();char c = op.top(); op.pop();int x = 0;if (c == '+') {x = a + b;}else if (c == '-')x = b - a;else if (c == '*')x = a * b;elsex = b / a;num.push(x);
}int main() {unordered_map<char, int>mp = { {'+',1},{'-',1},{'*',2},{'/',2} };cin >> s;for (int i = 0; i < s.size(); i++) {auto c = s[i];if (isdigit(c)) {int x = 0, j = i;while (j < s.size() && isdigit(s[j])) {x = x * 10 + s[j++] - '0';}i = j - 1;num.push(x);}else if (c == '(')op.push(c);else if (c == ')') {while (op.top() != '(')eval();op.pop();}else {while (op.size() && mp[op.top()] >= mp[c])eval();op.push(c);}}while (op.size())eval();cout << num.top() << endl;return 0;
}
相关文章:
3302. 表达式求值, 栈的应用
3302. 表达式求值 - AcWing题库 给定一个表达式,其中运算符仅包含 ,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。 注意: 数据保证给定的表达式合法。题目保证符号 - 只作为减号出现&…...
论文写作框架示例:论软件系统建模方法及其应用
标题 前言题目要求写作框架(1)摘要(300~330字)(2)正文(2000~2500字,2200字左右为宜)(3)收尾(200字左右)前言 本章内容参考了51cto的薛老师的《软考论文高分特训与范文10篇》的内容,是帮助初学者打开写作思路的工具,而不是必须要遵循的模式。建议软考人多读多看…...
Godot 官方2D C#重构(4):TileMap进阶使用
文章目录 前言完成内容项目节点结构TileMap设置图片资源备选图片添加物理碰撞添加y轴遮罩判断Y Sort Enable是干什么的? 脚本代码 前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 完成内容 项目节点结构 TileMap设置 图片资源 备选图…...
Ubuntu系统编译调试QGIS源码保姆级教程
在之前的文章中,我详细介绍了怎么在Windows下编译QGIS源码,也得到了不错的反馈。但是不足的是Windows下只能编译QGIS的Release模式和RelWithDebInfo模式,想要分析源码,“断点调试”肯定是少不了的,但是这两种模式虽然也…...
电源控制系统架构(PCSA)之系统控制处理器
安全之安全(security)博客目录导读 目录 一、系统控制处理器 1、服务 2、可信操作 一、系统控制处理器 SCP是一种基于处理器的能力,为提供电源管理功能和服务提供了一个灵活和可扩展的平台。 在移动系统中,SCP处理器一般是Cortex-M微控制器ÿ…...
深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
加我微信hezkz17进数字音频系统研究开发交流答疑群(课题组) 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署 项目一 科大讯飞经验 在Matlab平台上实现广义…...
Redis实现方式开启新篇章,解决分布式环境下的资源竞争问题,提升系统稳定性
前言 分布式锁一般有三种实现方式: 数据库乐观锁;基于Redis的分布式锁;基于ZooKeeper的分布式锁 本篇博客将介绍第二种方式,基于Redis实现分布式锁。 虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实…...
Go命令行参数操作:os.Args、flag包
Go命令行参数操作:os.Args、flag包 最近在写项目时,需要用到命令行传入的参数,正好借此机会整理一下。 1 os.Args:程序运行时,携带的参数(包含exe本身) package mainimport ("fmt"&q…...
在Go中处理时间数据
获取时间 这可能是软件包中最常用的方法。我们如何知道当前的时间呢?像这样: t : time.Now() fmt.Println(t)ini复制代码2023-04-16 23:54:45.924965 0800 CST m0.000152293这就是当前的时间。这是很麻烦的,所以我将把它分解成几个部分。 …...
SOLIDWORKS PDM 2024数据管理5大新功能
1. 改进的视觉内容 • 通过装配体可视化功能,在 SOLIDWORKS 中以图形方式查看零部件数据,如工作流程状态。• 使用特定图标迅速识别焊件切割清单零部件。 优点:重要数据和系统信息一目了然。 2.增强的数据保护和跟踪功能 •保护“包含”和…...
5G与医疗:开启医疗技术的新篇章
5G与医疗:开启医疗技术的新篇章 随着5G技术的快速发展和普及,它已经在医疗领域产生了深远的影响。5G技术为医疗行业提供了更高效、更准确、更及时的通信方式,从而改变了医疗服务的模式和患者的体验。本文将探讨5G技术在医疗领域的应用场景、优…...
Linux云服务器限制ip进行ssh远程连接
对Linux云服务器限制IP进行SSH远程连接的原因主要有以下几点: 增加安全性:SSH是一种加密的网络传输协议,可以保护数据的机密性和完整性。通过限制SSH连接的IP地址,可以防止未经授权的访问和数据泄露。只有拥有访问权限的IP地址才…...
【100天精通Python】Day72:Python可视化_一文掌握Seaborn库的使用《二》_分类数据可视化,线性模型和参数拟合的可视化,示例+代码
目录 1. 分类数据的可视化 1.1 类别散点图(Categorical Scatter Plot) 1.2 类别分布图(Categorical Distribution Plot) 1.3 类别估计图(Categorical Estimate Plot) 1.4 类别单变量图(Cat…...
(二开)Flink 修改源码拓展 SQL 语法
1、Flink 扩展 calcite 中的语法解析 1)定义需要的 SqlNode 节点类-以 SqlShowCatalogs 为例 a)类位置 flink/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/dql/SqlShowCatalogs.java 核心方法: Override pu…...
java中spi与api的区别
近期看了很多开源组件的源码,发现很多地方地方用到了 spi 的功能,开始思考 spi 与 api 的区别 发现 spi 侧重于抽象层次的概念,目前接触到的就是 java 里大量用到了这个,通过定义的接口来抽象通用的功能,然而 api 是不…...
【Android知识笔记】插件化专题(二)
在上一篇专题【Android知识笔记】插件化专题(一) 中详细介绍了Android三种插件化方案的实现以及它们的优缺点对比总结等。这一篇中主要来看一下一些插件化开源框架的实现原理,当然市场上的插件化框架有很多,层出不穷,如 DiDi VirtualApk、360 Replugin 等。本人在过去的工…...
赶紧收藏!史上最全IDEA快捷键大全
参考 IntelliJ IDEA 的官网,列举出了IntelliJ IDEA(Windows 版)的所有快捷键。 建议收藏,有需要的时候根据关键字来查找! idea专业版获取 kdocs.cn/l/ctYoaM6evJkl 该快捷键共分 16 类,可以方便的按各类…...
IntelliJ IDEA 把package包展开和压缩
想要展开就把对勾取消,想要压缩就勾上...
Python——自动创建文件夹
文章目录 前言一、判断文件夹或者文件是否存在二、创建一级文件夹三、创建多级文件夹四、代码封装前言 利用 Python编程语言实现自动创建文件夹,程序以函数形式封装,直接按要求传参即可调用。 在python中没有直接针对文件夹的操作方法,可以借助模块os,os.path和shutil来操作…...
Leetcode—21.合并两个有序链表【简单】
2023每日刷题(十三) Leetcode—21.合并两个有序链表 直接法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode* list1, struct…...
【ElevenLabs新疆话语音落地实战】:20年语音AI专家亲授3大合规适配难点与5步部署清单
更多请点击: https://kaifayun.com 第一章:ElevenLabs新疆话语音落地的背景与战略价值 随着国家“东数西算”工程纵深推进和多语种人工智能基础设施建设提速,维吾尔语作为我国重要的少数民族语言之一,其语音合成技术的自主可控与…...
circumflex 语法高亮功能详解:让评论和文章更易读的终极指南
circumflex 语法高亮功能详解:让评论和文章更易读的终极指南 【免费下载链接】circumflex 🌿 Its Hacker News in your terminal 项目地址: https://gitcode.com/gh_mirrors/ci/circumflex circumflex 是一个强大的终端 Hacker News 浏览器&#…...
ComfyUI全面掌握-知识点详解——ComfyUI 开发与扩展基础(开发指南+环境搭建)
本文为「ComfyUI 全面掌握」系列第 23 篇,是高阶进阶章节的第一篇知识点详解博客。作为开发系列的起点,本文将带你系统了解 ComfyUI 社区贡献流程,并手把手搭建完整的自定义节点开发环境,为后续的节点开发与发布奠定坚实的技术基础…...
408 每日一题 Day 2:二叉树的重构与遍历
一、题目描述 已知一棵二叉树的前序遍历序列为 ABDECFG,中序遍历序列为 DBEAFCG,则该二叉树的后序遍历序列是? A. DEBFGCAB. DEBFCGAC. DEBFGACD. DEBFAGC 二、考点分析项目内容核心知识点二叉树的遍历、根据遍历序列重构二叉树难度⭐⭐⭐408…...
RAG架构全解析:从基础到高级,打造你的企业级知识库问答系统!
本文详细介绍了RAG(Retrieval-Augmented Generation)架构的多种变体,从基础的Naive RAG和Standard RAG开始,逐步深入到Advanced RAG、Hybrid Search RAG、Rerank型RAG、文档增强型RAG、Agentic RAG、Router RAG、GraphRAG、RAPTOR…...
2026免费在线去水印软件对比推荐|五款工具测评,快速去掉各平台水印
在日常内容创作和素材整理中,很多人都会遇到水印的问题。无论是从抖音、快手、小红书还是B站保存视频,亦或是收集网络图片素材,几乎所有平台的内容都会附带水印。这些水印虽然有利于版权保护,但对于正常的个人使用、内容再创作或学…...
ElevenLabs波斯文TTS落地难题全破解:从Unicode乱码、音节切分失败到自然语调合成的5大技术卡点
更多请点击: https://codechina.net 第一章:ElevenLabs波斯文TTS落地难题全破解:从Unicode乱码、音节切分失败到自然语调合成的5大技术卡点 波斯文(Farsi)作为右向左(RTL)、连字密集、元音隐含…...
0 基础跨行斩获月薪 10k 实力远不及破局魄力
人生如同奔涌的比特流,暗礁与漩涡总在不经意间出现。 当挑战如恶意攻击般袭来,切莫因一时受阻而缴械投降。 那些在代码与协议中鏖战的日夜终将铸就铠甲,正如防火墙抵御入侵守护核心,只要目标坚定持续精进,终将在攻防…...
Agent 一接 MCP 大结果集就开始失忆:从 Result Summarization 到 Cursor Paging 的工程实战
一、MCP 一接大结果集,Agent 最先坏掉的不是推理,而是记忆 🧠 很多团队把 MCP 当成 Agent 的万能扩展层:只要把数据库、工单、代码检索、指标平台都挂进去,模型就能“边查边做”。真正上线后最先暴露的问题却很一致&am…...
JetBrains IDE试用期重置终极指南:轻松解决IDE过期问题
JetBrains IDE试用期重置终极指南:轻松解决IDE过期问题 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经遇到过这样的困扰:正在专注编码时,突然弹出的"试用期已结…...
