摘要: 题目:编写一个函数,计算字符串中表达式的值,参数中只包含计算符:+,-,*,/等。例如,str=”10+50+2*6/3”,result=64。 解析: 考虑算术表达式计算规则:同优先级操作符之间,从左到右计算;高优先级操作符的计算要早于低优先级操作符的计算;加减操作符优先级低于乘除操作符优先级;括号内的算术表达式的优先级高于括号外的乘除操作符的优先级。 利用两个辅助栈来存储结果。一个用于存储数值,一个用于存储操作符。考虑算术表达式的计算过程(从左往右计算,先计算高优先级操作符),因此表达式字符串逆序压入栈中。由于考虑栈存储的特点以及计算表达式的顺序问题,需要逆序的将数值和算术符压入... 阅读全文
posted @ 2013-11-01 15:11 life91 阅读(989) 评论(0) 推荐(0) 编辑