#P0218. 表达式求值 ll

    传统题 1000ms 256MiB 显示标签>数据结构

表达式求值 ll

题目描述

给出一个由 +/()+ - * / () 运算符以及阿拉伯数字组成的数学表达式 ss,请计算结果。

例如计算 23/2+12*3/2+1 这样的表达式。

  • 数据保证给定的表达式合法。

  • 题目保证符号 - 只作为减号出现,不会作为负号出现,例如,1+2,(2+2)((1+1)+2)-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现。

  • 题目保证表达式中所有数字均为正整数。

  • 题目保证表达式在中间计算过程以及结果中,均不超过 23112^{31}−1

  • 题目中的整除是指向 00 取整,也就是说对于大于 00 的结果向下取整,例如 5/3=15/3=1,对于小于 00 的结果向上取整,例如 5/(14)=15/(1−4)=−1

  • C++C++JavaJava 中的整除默认是向零取整;PythonPython 中的整除 //// 默认向下取整,因此 PythonPythoneval()eval() 函数中的整除也是向下取整,在本题中不能直接使用。

输入格式

共一行,为给定表达式;

输出格式

共一行,为表达式的结果;

数据范围

3s<105.3 \leq |s| < 10^5.

输入样例:

(3+3)*2

输出样例:

12

相关

在下列比赛中:

栈 & 队列模板