中缀式与后缀式的转化 郁闷的C小加(一)

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第七讲) 默认是第一种键盘模式,当需要切换模式,进入到ta_event_cb函数修改模式,下面代码以数字模式举例子lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);在该界面中可以设置键盘文字的大小和文本类型,最下方判断键盘是否支持中文输入(中文输入,当汉字库不够大时,用户点击中文输入会少很多字)。//当LV_USE_KEYBOARD为1时启用虚拟键盘,LV_USE_ZH_KEYBOARD为1时支持中文输入。随后在系统设置界面中点击项目选项,选择显示键盘。 阅读详情

郁闷的C小加(一)

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 3
描述

我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式转换为后缀表达式,现在请你设计一个程序,帮助C小加把中缀表达式转换成后缀表达式。为简化问题,操作数均为个位数,操作符只有+-*/ 和小括号。

输入
第一行输入T,表示有T组测试数据(T<10)。
每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个表达式。这个表达式里只包含+-*/与小括号这几种符号。其中小括号可以嵌套使用。数据保证输入的操作数中不会出现负数。并且输入数据不会出现不匹配现象。
输出
每组输出都单独成行,输出转换的后缀表达式。
样例输入
21+2(1+2)*3+4*5
样例输出
12+12+3*45*+
来源
【谢武强】原创
上传者

xiewuqiang


AC代码: 

#include <iostream>
#include <stack>
#include<string.h>
using namespace std;
int main()
{
	int N;// 表示数据的组数;
	char ch[1003]; // 用来存取表达式;
	char resultStr[1003]; //  用来存放输出结果的字符串;
	cin>>N;
	while(N--)
	{
		  stack<char> chStack; // 用来存放字符的栈;
		  int f=0;// 用来标识当前 ResultStr 中的实际字符数;
		  memset(ch,'\0',sizeof(ch));
		  memset(resultStr,'\0',sizeof(resultStr)); //  由于是多组数据的测试,所以每次用之前必须要对字符数组做 置空 处理,否则会出现意想不到的错误;
		  cin>>ch;
		  for(int i=0;i<(int)strlen(ch);i++)
		  {
			   if(ch[i]>='0'&&ch[i]<='9')  // 如果是数据,则用字符数组存起来;
			   {
				    resultStr[f]=ch[i];f++;
			   }
			   else
			   {
				   // 可以把小面的分情况讨论写成一个用于判断的函数,那样的话可能会清晰一点,很简单,在这里就不写啦;
				   if(chStack.empty()) {chStack.push(ch[i]);continue;}
                   if((chStack.top()=='*'||chStack.top()=='/')&&(ch[i]=='*'||ch[i]=='/')) 
				   { resultStr[f]=chStack.top();f++;chStack.pop(); i--;continue; }
				   if((chStack.top()=='+'||chStack.top()=='-')&&(ch[i]=='+'||ch[i]=='-')) 
				   { resultStr[f]=chStack.top();f++;chStack.pop(); i--;continue; }
				   if((chStack.top()=='*'||chStack.top()=='/')&&(ch[i]=='+'||ch[i]=='-'))
				   { resultStr[f]=chStack.top();f++;chStack.pop(); i--;continue; }
				   if((chStack.top()=='+'||chStack.top()=='-')&&(ch[i]=='*'||ch[i]=='/')) 
				   { chStack.push(ch[i]); continue; }
				   if(chStack.top()=='('&&ch[i]!=')')  { chStack.push(ch[i]); continue; }
				   if(chStack.top()=='('&&ch[i]==')') {chStack.pop();continue;}
				   if(chStack.top()!='('&&ch[i]==')') {resultStr[f]=chStack.top();f++;chStack.pop(); i--;continue;}
				   if(ch[i]=='(') { chStack.push(ch[i]); continue; }
			   }
		  }

		cout<<resultStr;
		while(!chStack.empty()) //  如果栈中还有元素,那么就一次弹出所有的元素;
		{
			cout<<chStack.top();
			chStack.pop();
		}
		cout<<endl;
	}
	return 0;
}




   
  
ENVI5.6 自动化流程:GF系列卫星影像批处理与质量优化 本文详细介绍了如何利用ENVI5.6构建针对GF-2、GF-6、GF-7系列卫星影像的自动化批处理流水线。通过配置Batch Processing工具,实现从正射校正到图像融合的全流程批量处理,并分享参数设置、质量监控与故障排查的实战经验,旨在显著提升海量遥感影像的处理效率与成果质量。 阅读详情

相关推荐

桌面云架构讲解(VDI、IDV、VOI/TCI、RDS)

什么是云桌面桌面云是虚拟化技术成熟后发展起来的一种应用,桌面云通常也称为云桌面、VDI等桌面云中的云一般指的是企业的数据中心,通过在数据中心的服务器上安装若干个虚拟机,这个虚拟机就是桌面;但是终端无法直接连接到这个虚拟机(云桌面),因此就需要通过技术将就虚拟机变为桌面云发放出来;发放出来之后只需要瘦客户端(PC、手机、瘦客户机等)连接到数据中心的云桌面服务器平台,最终就可以连接到桌面来进行使用云桌面的优势终端与数据信息分离,数据在后台集中处理和存储 ,数据实现统一管理。

m0_49864110的博客 3万+

Minecraft模组开发避坑指南:GeckoLib 3在1.19.2 Forge中集成与动画实体渲染的5个常见错误及解决方法

本文详细解析了在Minecraft 1.19.2 Forge模组开发中集成GeckoLib 3时常见的5个错误及解决方案,包括Gradle依赖配置、动画资源加载、动画状态机控制、渲染异常和游戏启动崩溃问题。通过实战经验和代码示例,帮助开发者高效解决生物实体动画渲染中的技术难题,提升模组开发效率。

weixin_30448603的博客 343

Flink项目基础配置指南

在大数据处理领域,Apache Flink凭借强大的实时流处理和批处理能力,成为众多开发者的首选工具。在日常工作中,开发Flink Jar任务是常见需求,但每次都需重复配置日志、梳理pom依赖、设置打包插件等,流程繁琐且易出错。为提升开发效率,减少重复劳动,将这些基础配置进行整理归纳十分必要。本文将围绕Flink项目的本地日志配置、pom依赖及插件配置展开详细介绍,为开发者提供一套可直接复用的基础配置方案,助力Flink项目高效开发。在Flink项目中,日志是了解任务运行状态、排查问题的重要依据。本地日志配

qq_42773076的博客 1210

中缀表达式转后缀表达式

/*郁闷的C小加(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同 理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式

wang19961023的博客 391

银河麒麟V10新特性解析:从安装到AI应用的全面指南

本文全面解析银河麒麟V10操作系统的新特性,从安装指南到AI应用开发,详细介绍了其智能调度引擎、神经网络加速和场景化AI工具集等核心功能。通过实战案例展示如何高效配置AI环境、优化性能,并解决常见问题,助力开发者在国产操作系统上实现高效AI开发与应用部署。

seed的博客 302

qtcreator使用远程服务器编译代码

我并没有找到很好的windows上可以用的rsync工具,最后是装了wsl来调用rsync同步到代码后,在用ssh调用linux命令来编译的。安装wsl安装ubuntu启动wsl然后把windows里的ssh文件证书和配置复制到wsl里同时config的key目录需要改一下,这样就可以登录服务器了然后在home目录创建build.sh进行远程编译。

习惯就好zz的专栏 1381

NYOJ 257

  郁闷的C小加(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式...

路漫漫其修远兮,吾将上下而求索 312

Windows下超详细安装Anaconda3以及jupyter notebook

1.下载Anaconda安装包 Anaconda官网网站:https://www.anaconda.com/products/individual下载安装包速度比较慢,国内小伙伴不建议尝试。 我们可以使用清华大学开源软件镜像站:清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,请选择适合自己系统自行下载。 下载完成后如下图: 1.安装Anaconda安装包 1.打开安装包,点击Next 2.点击I Agre

m0_37957160的博客 3801

数据结构(C++实现):栈的运用--中缀表达式转换为后缀表达式既 nyoj 257

这题用了c++提供的封装了,没有写手工栈,手工栈的代码等实验结束后再上传。        题目链接http://acm.nyist.net/JudgeOnline/problem.php?pid=257                                                    郁闷的C小加(一) 描述 我们熟悉的表达式如a+b、a+b*(c+d)等都属于中

... 4115

用 RFC Destination 打通 VS Code 与 ABAP 后端,ABAP 开发连接不只是登录那么简单

本文重点介绍了在VS Code中配置ABAP开发环境时建立RFC destination连接的关键细节。文章指出:1. RFC destination是连接前端开发工具与ABAP后端的核心配置,包含系统类型、客户端、用户名等关键信息;2. 连接方式的选择(RFC/HTTP)由产品形态决定,On-Premise和Private Edition使用RFC,而BTP和Public Cloud使用HTTP;3. 连接创建后需要通过添加工作区文件夹来展示开发对象;4. RFC连接涉及网络可达性、身份认证和开发权限三个

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 211

【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(五)Adapter 微调

Adapter 微调(Adapter Fine-tuning)是一种高效的参数高效微调(PEFT)方法。相较于全参数微调(Full Fine-tuning),Adapter 在预训练模型的特定层插入轻量级的可训练模块,而冻结原始模型参数,从而减少计算和存储开销。是缩放因子,控制 Adapter 输出的影响程度。设 Transformer 层的隐藏状态为。为 Adapter 层的可训练参数,为非线性激活函数,如 ReLU。为冻结的预训练模型参数,

AI科研社 184

nyoj-257 郁闷的C小加(一)

看大神的代码看了好久,我自己感觉不太好理解 代码:#include #include #include #include using namespace std; char str[1200]; int fun(char ch){ //对优先级进行预定义 switch(ch){ case '+': ; case '-': return 1; break; case '*': ;

wojiaohuangyu的专栏 730

【UNet 改进 | 注意机制篇】UNet引入CA注意力机制(2021 CVPR),二次创新

在医学图像分割任务中,病灶区域往往形态各异、边界模糊,且经常与周围组织的对比度较低,这要求模型具备极强的特征提取和细节辨别能力。传统的U-Net网络虽然通过跳跃连接融合了多尺度特征,但在处理复杂语义和精细边缘时仍有不足,尤其是在捕获特征时常常忽略位置信息。为了解决这些痛点,本文引入了在计算机视觉领域表现出色的 CA(Coordinate Attention,协调注意力)机制。CA 巧妙地将位置信息嵌入到了通道注意力中,通过水平和垂直两个方向的一维池化,同时捕获长距离依赖和精确的位置坐标。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 185

NYOJ 257 郁闷的C小加(一) (栈 、中缀转后缀)

郁闷的C小加(一) 描述 我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式转换为后缀表达式,现在请你设计一个程序,帮助C小加把中缀表达式转换成后

MADE_Y 533

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

nyoj-409 郁闷的C小加(三) (表达式求值,中缀式转前缀式,中缀式转后缀式)

郁闷的C小加(三) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述聪明的你帮助C小加解决了中缀表达式到后缀表达式的转换(详情请参考“郁闷的C小加(一)”),C小加很高兴。但C小加是个爱思考的人,他又想通过这种方法计算一个表达式的值。即先把表达式转换为前缀和后缀表达式,再求值。这时又要考虑操作数是小数和多位数的情况。 输入第一行输入一

狂飙的蜗牛 的专栏 1141

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

nyoj-257-郁闷的C小加(一 )中缀式变后缀式

题目链接:here~~~~~~~ 今天看了此题,感觉栈和队列很好用,进一步深入了解 一个算术表达式,含有数字(为简化处理,数字只有一位),运算符:+、-、*,以及括号,求表达式的值。  给出的表达式是一般我们见到的中缀表达式,即运算符位于操作数之间。如果把中缀表达式转化为后缀表达式,那么对后缀表达式求值将会很方便。  后缀表达式特点:   1.操作符位于操作数之后

风儿-zsj的专栏 779

nyoj 257 郁闷的C小加(一)(栈、队列)

郁闷的C小加(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎...

devon2014的博客 113

NYOJ 中缀式变后缀式

中缀式变后缀式题目描述:人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。输入描述:第一行输入一个整数n,共有n组测试数据(n&lt;10)。 每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以“=”结束。这...

YOONGI 195

xynuoj 1956 郁闷的C小加(一)中缀表达式转后缀表达式

1956: 郁闷的C小加(一)时间限制: 1 Sec  内存限制: 64 MB[提交][状态][讨论版]题目描述我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式...

Dear_Jia的博客 346

郁闷的C小加(三)

郁闷的C小加(三) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 聪明的你帮助C小加解决了中缀表达式到后缀表达式的转换(详情请参考“郁闷的C小加(一)”),C小加很高兴。但C小加是个爱思考的人,他又想通过这种方法计算一个表达式的值。即先把表达式转换为前缀和后缀表达式,再求值。这时又要考虑操作数是小数和多位数的情况。 输入 第一行输入一个整数T,共有T组测试

STILLxjy 434

nyoj 267 郁闷的C小加(二)中缀表达式变后缀表达式并计算值

郁闷的C小加(二)时间限制:1000 ms  |  内存限制:65535 KB难度:4描述聪明的你帮助C小加解决了中缀表达式到后缀表达式的转换(详情请参考“郁闷的C小加(一)”),C小加很高兴。但C小加是个爱思考的人,他又想通过这种方法计算一个表达式的值。即先把表达式转换为后缀表达式,再求值。这时又要考虑操作数是小数和多位数的情况。输入第一行输入一个整数T,共有T组测试数据(T&lt;10)。每组...

Dear_Jia的博客 352

南阳oj 郁闷的c小加(二) 题目267

给大家推荐个靠谱的公众号程序员探索之路,大家一起加油 #include&lt;stdio.h&gt; #include&lt;stack&gt; #include&lt;string.h&gt; #define N 1000 #include&lt;stdlib.h&gt; using namespace std; stack&lt;char&gt; str;//字符栈  转化为后缀式 st...

yueloveme的博客 530

后缀表达式

(转)一个算术表达式,含有数字(为简化处理,数字只有一位),运算符:+、-、*,以及括号,求表达式的值。 给出的表达式是一般我们见到的中缀表达式,即运算符位于操作数之间。如果把中缀表达式转化为后缀表达式,那么对后缀表达式求值将会很方便。 后缀表达式特点:  1.操作符位于操作数之后;  2.没有括号;  3.运算符没有优先级。 中缀表达式转化为后缀表达式的步骤:  1.初始化一个空操作符栈和空结果

chaideyipi 887

nyoj_257郁闷的c小加(一)

郁闷的C小加(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式

z956281507的博客 430

郁闷的C小加(一)

题目描述:我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2。同理,后缀表达式就是操作符在两个操作数之后:num1 num2 operand。ACM队的“C小加”正在郁闷怎样把一个中缀表达式转换为后缀表达式,现在请你设计一个程序,帮助C小加把中缀表达式转换成后缀表达式。为简化问题,操作数均为...

几许情愁的博客 212
上一篇: 别样表达式求值
下一篇: Brute-Force算法 (eg.Binary String Matching)
chwei_cson
博客等级 码龄15年 62粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值