是一道加减乘的表达式计算的题目,easy
```
import Queue
def chengfa(cs):
stack = Queue.LifoQueue()
begin = 0
for i in range(len(cs)):
if cs[i] == "*" :
stack.put(cs[begin:i])
begin=i+1
stack.put(cs[begin:])
result = int(stack.get())
while not stack.empty():
result *= int(stack.get())
return result
while True:
s = raw_input()
if s == "END" :
break
else :
num = Queue.Queue()
operator = Queue.Queue()
begin=0
for i in range(len(s)):
if s[i] == "+" or s[i] == "-":
num.put(chengfa(s[begin:i]))
begin = i + 1
operator.put(s[i])
num.put(chengfa(s[begin:]))
result = num.get()
while not num.empty():
if operator.get() == "+":
result += num.get()
else:
result -= num.get()
print result
```
本文介绍了一种处理包含加法、减法和乘法运算的数学表达式的算法。通过使用队列和栈数据结构,该算法能有效地解析并计算这类表达式的值。首先,算法将表达式按乘法操作分割并计算每一部分的乘法结果,然后处理剩余的加法和减法运算。
2260

被折叠的 条评论
为什么被折叠?



