【数据结构】P1449 后缀表达式
时间:2019-08-20
本文章向大家介绍【数据结构】P1449 后缀表达式,主要包括【数据结构】P1449 后缀表达式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
【题目链接】
https://www.luogu.org/problem/P1449
【题目描述】
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。
如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。
输入格式
输入:后缀表达式
输出格式
输出:表达式的值
输入输出样例
输入 #1
3.5.2.-*7.+@
输出 #1
16
说明/提示
字符串长度,1000内。
【题解】:
基础的用栈模拟求解过程,直接用栈存储,然后遇到操作符就进行运算。
具体可以看代码
【代码】
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int N = 1e3+10; 5 6 char s[N]; 7 //3.5.2.-*7.+@ 8 9 ll Calc( ll u , ll v , char op){ 10 switch( op ){ 11 case '+' : return u+v; 12 case '-' : return u-v; 13 case '*' : return u*v; 14 case '/' : return u/v; 15 } 16 } 17 18 int main() 19 { 20 list <ll> L ; 21 scanf("%s",s); 22 ll tmp = 0 , u , v ; 23 for(int i=0;s[i];i++){ 24 if( isdigit(s[i]) ){ 25 tmp = tmp * 10 + s[i] - '0' ; 26 }else if( s[i] =='.' ){ 27 L.push_back(tmp) ; 28 tmp = 0; 29 }else if( s[i] !='@' ){ 30 v = L.back() ; L.pop_back() ; 31 u = L.back() ; L.pop_back() ; 32 L.push_back( Calc(u,v,s[i]) ) ; 33 } 34 } 35 printf("%lld\n",L.back()); 36 return 0; 37 }
原文地址:https://www.cnblogs.com/Osea/p/11380767.html
- [Go 语言社区]服务器读取配置文件只-json数据
- gsoap开发webservice
- [Go 语言社区]测试模块之---utf8例子
- org.hibernate.type.StringType cannot be cast to org.hibernate.type.VersionType
- JBPM4.4(2)-state结点和decision结点
- [Go 语言社区] Golang架构底层---日志函数
- [Go 语言社区]服务器游戏用户登陆数据读取函数
- 设计Go API的管道使用原则
- Goroutine背后的系统知识
- 从零到 Go:Google感恩节火鸡涂鸦开发纪实
- JBPM4.4(1)-简单工程的搭建
- 未绑定元素“mx:Panel”的前缀“mx”
- [Go 语言社区] Golang架构底层函数图片保存-原创
- [Go 语言社区]Golang架构--服务器与客户端自定义传输规则--原创
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法