求后缀表达式的值
后缀表达式的值
【题目描述】
从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。
比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:
栈中的变化情况:
运行结果:-47
提示:输入字符串长度小于250,参与运算的整数及结果之绝对值均在2^64范围内,如有除法保证能整除。
【输入】
一个后缀表达式。
【输出】
一个后缀表达式的值。
【输入样例】
16 9 4 3 +*-@【输出样例】
-47
如果你还没有学习过栈这种数据结构,那这道题目将有点困难。
什么是后缀表达式
后缀式即逆波兰式,当计算机要计算一个表达式时,计算机不像人,能够直接看出各符号的优先级,对优先级高的先进行计算,所以需要后缀表达式来使计算机也能看懂并且计算表达式。
不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:16 9 4 3 +*-
4 + 3 = 7
7 * 9 = 64
16 - 64 = -47
思路
一、先将字符串读入,中间有空格,普通的输入方式不行,要么输入一行要么直到回车才停止输入
二、遍历整个字符串,考虑会遇到哪些情形,会遇到加减乘除、数字、空格,如果是空格就跳过,是数字就入栈,是运算符就将栈顶和栈顶后面一个元素进行运算(注意顺序),然后将这两个元素出栈,再将运算的结果入栈
三、遇到 ' @ ' 就停止遍历
题解
#include <iostream>
#include <string>using namespace std;//数组模拟栈
long long stk[250]; //题目中说明了数据范围在2^64内,故用long long
int tt;int main(void)
{/*char arr[250];scanf("%[^\n]s", arr); // 输入一行,直到遇到\n*/// 或者可以这样写string arr;getline(cin, arr);long long temp = 0;for (int i = 0; arr[i] != '@'; i++ ){if (arr[i] == '+'){temp = stk[tt - 1] + stk[tt ];tt--; tt--;stk[++tt] = temp;//这几步可以简化 例如// stk [tt -1 ] = stk [tt -1 ] + stk [tt] ;// tt --;}else if (arr[i] == '-'){temp = stk[tt - 1] - stk[tt ]; // 注意前后顺序tt--; tt--;stk[++tt] = temp;}else if (arr[i] == '*'){temp = stk[tt] * stk[tt - 1];tt--; tt--;stk[++tt] = temp;}else if (arr[i] == '/'){temp = stk[tt - 1] / stk[tt ];tt--; tt--;stk[++tt] = temp;}else if (arr[i] == ' '){;}else{temp = 0; //入栈的数可能是多位数while (arr[i] != ' '){temp = temp * 10 + (arr[i] - '0');i++;}stk[++tt] = temp;}}printf("%lld\n", stk[tt]);return 0;
}
相关文章:
求后缀表达式的值
后缀表达式的值 【题目描述】 从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加()、减(—)、乘(*)、除(/)四种运算符。每个运算数之间…...
【FISCO-BCOS】十七、角色的权限控制
目录 一、角色定义 二、账户权限控制 1.委员新增、撤销与查询 2.委员权重修改 3.委员投票生效阈值修改 4. 运维新增、撤销与查询 一、角色定义 分为治理方、运维方、监管方和业务方。考虑到权责分离,治理方、运维方和开发方权责分离,角色互斥。 治理…...
vue怎样封装接口
Vue可以使用axios来发送HTTP请求,通过封装axios可以实现接口的统一管理和调用。下面是一个简单的封装接口的示例。 安装axios 在项目中安装axios依赖,可以使用npm或者yarn命令进行安装。 npm install axios --save创建api.js文件 在项目中创建一个ap…...
Typescript 笔记:函数
1 函数定义 function function_name() {// 执行代码 }2 函数返回值 function function_name():return_type { // 语句return value; } return_type 是返回值的类型。 return 关键词后跟着要返回的结果。 返回值的类型需要与函数定义的返回类型(return_type)一致。 3 函数…...
Axios 封装
请注意以下文件夹: utils下的setToken.js 是token封装(封装 Token-CSDN博客),service.js 是axios封装。 Axios封装: 1.安装axios 在项目终端下 输入: npm install axios --save 2.在main.js全局引入axios import axios from axiosVue.prototype.$axios =axios //挂…...
CocosCreator 面试题(一)Javascript的垃圾回收机制
JavaScript的垃圾回收机制是一种自动管理内存的机制,它负责检测和回收不再使用的内存,以便释放资源并提高性能。 标记清除(Mark and Sweep):这是JavaScript最常用的垃圾回收算法。它的工作原理是通过标记活动对象&…...
【计算机网络】UDP协议编写群聊天室----附代码
UDP构建服务器 x 预备知识 认识UDP协议 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 传输层协议无连接不可靠传输面向数据报 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的…...
Java架构师高并发架构设计
目录 1 导学2 什么是高并发问题3 高并发处理之道4 akf扩展立方体5 细化理念应对高并发5 总结1 导学 本章的主要内容是大型系统架构设计的难点之一,高并发架构设计相关的知识落到实际项目上,就是订单系统的高并发架构设计。我们首先会去学习到底何为高并发问题,先把问题搞清楚…...
【客观赋权法1】熵权法(MATLAB全代码)
熵权法(entropy weight method, EWM) 1 原理2 MATLAB代码3 案例参考赋权法(Weighting Method) 是一种常用的数据处理方法,它可以将不同变量之间的重要性进行区分,并赋予它们不同的权重,以反映它们对整体的贡献程度。 指标在评估体系中的重要程度可以用 指标权重系数表示…...
“注释: 爱恨交织的双重标准?解析注释在代码开发中的作用。”
文章目录 每日一句正能量前言观点和故事程序员不写注释的原因是什么如何才能写出漂亮的注释后记 每日一句正能量 水与水之间有距离,但地心下直相牵,人与人之间有距离,但心里时刻挂念,发条短信道声晚安,梦里我们相见。 …...
一种基于局部适应度景观的进化规划的混合策略
文章目录 标题摘要结论研究背景研究内容、成果常用基础理论知识潜在研究点文献链接标题 A Mixed Strategy for Evolutionary Programming Based on Local Fitness Landscape 摘要 进化规划(EP)的性能受到许多因素的影响(如突变操作符和选择策略)。虽然传统的高斯突变算子…...
Python数据攻略-Mongodb数仓无法写入方法汇总
Mongodb作为一个非结构化的NoSQL数据库,能存储各种复杂和多变的数据格式,如JSON。这使得Mongodb在实时数据分析和高性能查询中具有优势。 在使用Mongodb的过程中,可能会遇到写入失败的问题。常见的几种情况包括无法建立连接、认证失败和存储限制。 文章目录 诊断问题日志分…...
用什么工具来画UML?
2023年10月9日,周一晚上 目录 我的决定 关于rational rose UML工具有哪些 相关资料 我的决定 我决定用plantUML、draw.io或starUML就可以了 其实没必要在意工具, 重要的是能把图画出来、把图画好画规范, 重要的是知道怎么去画图、把意…...
SQLite3数据类型
存储类与数据类型 NULLINTEGER 有符号整数类型,存储为0,1,2,3,4,6或8个字节,取决于值的大小。REAL 浮点类型,存储为8字节的IEEE浮点数。TEXT 文本类型,将使用数据库指定的编码格式存储(UTF-8,UTF-16BE,UTF-16LE)BLOB …...
K8S:K8S对外服务之Ingress
文章目录 一.Ingress基础介绍1.Ingress概念2.K8S对外暴露服务(service)主要方式(1)NodePort(2)LoadBalancer(3)externalIPs(4)Ingress 3.Ingress 组成&#x…...
flask入门
第一个Flask项目 创建后项目如下图 static存放静态文件,templates存放Jinja2模板,app.py是整个项目的入口文件 我们略微理解下app.py这里的代码 # 从flask这个包中导入Flask类 from flask import Flask#使用Flask类创建一个app对象 #__name__:代表当前…...
掌动智能:性能测试工具优势有哪些
由于应用程序的性能直接影响用户体验和满意度。而性能问题可能会导致应用响应缓慢、崩溃或无法处理大量用户请求。为了确保应用程序的高性能和可靠性,开发团队需要对应用程序进行性能测试。性能测试工具能够模拟真实场景下的负载并监测应用程序的性能表现࿰…...
实现一个简单的线性回归和多项式回归(2)
对于多项式回归,可以同样使用前面线性回归中定义的LinearRegression算子、训练函数train、均方误差函数mean_squared_error,生成数据集create_toy_data,这里就不多做赘述咯~ 拟合的函数为 def sin(x):y torch.sin(2 * math.pi * x)return y1.数据集的建…...
云原生Kubernetes:K8S集群kubectl命令汇总
目录 一、理论 1.概念 2. kubectl 帮助方法 3.kubectl 子命令使用分类 4.使用kubectl 命令的必要环境 5.kubectl 详细命令 一、理论 1.概念 kubectl是一个命令行工具,通过跟 K8S 集群的 API Server 通信,来执行集群的管理工作。 kubectl命令是操…...
Java使用模板导出word、pdf
使用deepoove根据模板导出word文档,包括文本、表格、图表、图片,使用WordConvertPdf可将word文档转换为pdf导出 模板样例: 导出结果: 一、引入相关依赖 <!-- 工具类--><dependency><groupId>cn.hutool&…...
Cursor插件开发实战:基于LSP与静态分析的代码导航增强
1. 项目概述:一个为开发者“减负”的Cursor插件如果你和我一样,日常开发重度依赖Cursor这款AI驱动的代码编辑器,那你肯定也经历过这样的时刻:面对一个陌生的代码库,想快速了解某个函数、类或者变量的定义位置ÿ…...
基于sagents框架的AI智能体开发:从核心原理到实战应用
1. 项目概述:一个面向开发者的AI智能体构建框架最近在AI应用开发圈子里,一个名为sagents的开源项目开始引起不少同行的注意。如果你正在寻找一个能帮你快速构建、测试和部署AI智能体(Agent)的框架,而不是从零开始造轮子…...
win2xcur:Windows光标主题完美移植Linux的格式转换指南
1. 项目概述:从Windows光标到Linux的“翻译官”如果你和我一样,是个在Linux桌面和Windows之间反复横跳的用户,或者你为团队维护着跨平台的开发环境,那你一定遇到过这个不大不小但很恼人的问题:Windows系统上那些精心设…...
RFSoC开发避坑指南:手把手教你理解并配置RF数据转换器的核心结构体(以XRFdc为例)
RFSoC开发实战:深度解析XRFdc结构体配置与避坑策略 第一次打开xrfdc.h头文件时,面对密密麻麻的结构体定义,我的鼠标滚轮不由自主地滑动了三分钟才看完所有内容。作为曾经在RFSoC项目上踩过无数坑的开发者,我完全理解那种面对数十个…...
从社交情绪预测到论文分类:DHGNN动态超图模型在两大真实场景下的性能实测与调优心得
动态超图神经网络实战:从社交情绪分析到学术论文分类的双场景深度解析 当面对微博海量用户情绪的实时波动,或是学术文献间错综复杂的引用关系时,传统图神经网络常显捉襟见肘。动态超图神经网络(DHGNN)通过独特的层级动…...
GraphQL-WS服务器配置:完整参数详解与最佳实践
GraphQL-WS服务器配置:完整参数详解与最佳实践 【免费下载链接】graphql-ws Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-ws GraphQL-WS…...
方法论:什么是横向纵向分析法?
文章目录前言什么是横纵分析法?规划类: 空间和时间价值链:投入和产出考察类: 广度和深度调研类:竞品和历史机型对比问题跟进类:正面和侧面问题解决类:预防和治愈前言 由于事情往往有两面性&…...
iPhone、iPad、Mac功能联动!
今天分享几个iPhone、iPad、Mac之间的联动技巧 通讯转接 iPhone不在身边或者不方便拿出来接听电话,在身边的iPad、Mac也可以接听电话,设置方法如下: 打开设置 – 电话 – 在其他设备上通话 – 勾选上iPad、Mac设备就可以了,iPh…...
python海龟绘图之窗口背景
可以将海龟绘图的窗口背景设置为纯色或者图片。1 将窗口背景设置为纯色通过bgcolor()函数设置窗口的背景色。该函数有四种使用方法,分别是① bgcolor()② bgcolor(colorstring)③ bgcolor((r, g, b))④ bgcolor(r, g, b)1.1 bgcolor()bgcolor()不带参数的形式&#…...
开源HR智能体openhr-agent:本地部署、模块化设计与核心应用场景解析
1. 项目概述:一个开源的HR智能体最近在GitHub上看到一个挺有意思的项目,叫openhr-agent。光看名字,你可能会觉得这又是一个“AI要取代HR”的噱头工具。但实际深入了解一下,我发现它的定位和设计思路,比想象中要务实和清…...

