表达式求值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。
空间限制: 256MB