‹ 上一题 下一题 ›

g5-08213. 表达式求值 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLstack

题目描述

读入一个不含括号的四则运算表达式,只含 +、-、*、/ 四种运算符和非负整数操作数,按通常的优先级计算:* 和 / 先于 + 和 -,同级的从左到右算。题目保证除法都能整除,输出表达式的整数值。

表达式求值的骨架(文章第 7 章):准备一个数栈和一个运算符栈,遇到数字就进数栈;遇到运算符时,先把栈里优先级不低于它的运算符弹出来结算——每次弹出运算符后从数栈弹出两个数,算完把结果压回数栈。注意 pop() 不返回值,先 top() 再 pop();先弹出来的是右操作数。

输入格式

一行一个字符串 (),表示表达式,不含空格与括号。

输出格式

一行一个整数:表达式的值。

样例

输入:

2+3*4

输出:

24

先算 ,再算 ——乘法抢在加法前面。

数据范围

,操作数为不超过 的非负整数;保证每一步除法都整除,且运算过程中的所有中间结果与最终结果都在 long long 范围内。从左到右顺手算会掉进优先级的坑: 不是 。

输入
输出

            
答案