gpt4 book ai didi

python - 用递归求解完全括号表达式

转载 作者:太空狗 更新时间:2023-10-30 03:05:15 30 4
gpt4 key购买 nike

我在想出一个可以求解完全括号方程的递归方法时遇到了麻烦......例如 ((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)

最佳答案

你的语法是:

expr ::= int | ( expr op expr )

正确吗?

所以,忽略错误检查,比如...

def evalExpr(it):
item = it.next()
if isInt(item):
return int(item)
else:
//item should = lparen
operand1 = evalExpr(it)
op = it.next()
operand2 = evalExpr(it)
rparen = it.next()
return execute(op, operand1, operand2)

关于python - 用递归求解完全括号表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103965/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com