我很难想出一个递归的方法来解决完全带圆括号的方程,比如((3+2)/(1+4))
。我能够想出一个递归的解决方案来解决像+*+3421
这样的中缀表达式,但是对于((3+2)/(1+4))
这样的东西,我有点卡住了。在
def evalPrefix(exp):
it = iter(exp)
return evalPrefixInner(it)
def evalPrefixInner(it):
item = it.next()
if isInt(item):
return int(item)
else:
operand1 = evalPrefixInner(it)
operand2 = evalPrefixInner(it)
return execute(item, operand1, operand2)
分析输入中的有效数据,然后使用^{} 模块来解析表达式,如下所示:
然后您可以使用:
^{pr2}$你的语法是:
对吗?在
所以,忽略错误检查,比如。。。在
^{pr2}$试试^{} :
相关问题 更多 >
编程相关推荐