题目描述
读入一个不含括号的四则运算表达式,只含 +、-、*、/ 四种运算符和非负整数操作数,按通常的优先级计算:* 和 / 先于 + 和 -,同级的从左到右算。题目保证除法都能整除,输出表达式的整数值。
表达式求值的骨架(文章第 7 章):准备一个数栈和一个运算符栈,遇到数字就进数栈;遇到运算符时,先把栈里优先级不低于它的运算符弹出来结算——每次弹出运算符后从数栈弹出两个数,算完把结果压回数栈。注意 pop() 不返回值,先 top() 再 pop();先弹出来的是右操作数。
输入格式
一行一个字符串 (),表示表达式,不含空格与括号。
输出格式
一行一个整数:表达式的值。
样例
输入:
2+3*4
输出:
24
先算 ,再算 ——乘法抢在加法前面。
数据范围
,操作数为不超过 的非负整数;保证每一步除法都整除,且运算过程中的所有中间结果与最终结果都在 long long 范围内。从左到右顺手算会掉进优先级的坑: 不是 。