表达式求值2

提交数: 283, 通过率: 30.39%, 平均分: 53.57

题目描述:

算数四则运算的规则是1)先乘除,后加减;2)从左算到右;3)先括号内,后括号外。
由此,算式4+2*3-10/5的计算顺序为4+2*3-10/5=4+6-10/5=4+6-2=10-2=8。
给定一个以“#”作为结束符的算式,求出算式的结果。
提示:式子肯定合法,有负数,负号只可能会出现在'('后面或者开头,比如-5+(-2*3+6),-5+(-2*3+(-6))

输入格式:

仅一行,以“#”结尾的表达式,运算数为整数。

输出格式:

一行,表达式运算的结果。

数据范围:

表达式的字符串长度<=50

样例输入:

样例1:
4+2*3-10/5#

样倒:
3*(7-2)#

样例输出:

样例1:
8

样例2:
15

提示:

提示:
使用栈来解决本题。
算法(一)使用两个栈,一个是存储运算符的,类型为char;另一个存储运算数,类型为int。
算法(二)先转后缀表达式,然后计算后缀表达式的值。
 
总结:
注意灵活运用栈,可以使用STL。
 
时间限制: 1000ms
空间限制: 256MB