【发布时间】:2021-07-01 05:53:37
【问题描述】:
我正在编写一个使用递归将后缀转换为中缀表达式的代码。我不断收到错误消息,指出我的列表超出了 if 语句的范围,并且我无法连接 str 和列表。如果您也可以给我一些索引提示,那就太好了。谢谢!
def Post_to_In_Recursion(expression):
if len(expression) == 1:
return expression
else:
operator = 0
operand = 0
position = -1
while operator > operand:
if isOperand(expression[position]):
operand += 1
else:
operator += 1
position = position - 1
return '(' + Post_to_In_Recursion(expression[:position])+ Post_to_In_Recursion(expression[-1]) + Post_to_In_Recursion(expression[position:]) + ')'
def isOperand(char):
if (char >= "a" and char <= 'z') or (char >= 'A' and char <= 'Z'):
return True
else:
return False
expression = ['a','b','*','c','+']
print(Post_to_In_Recursion(expression))
【问题讨论】:
-
输出应该看起来像
((a*b)+c),对吧?
标签: python python-3.x list recursion