不使用python中的类的后缀中缀

问题描述

我花了很多时间试图理解问题并提出解决方案。问题是当包含括号时,它不起作用。我将检查条件添加到堆栈,因为它显示IndexError。这是我的第一篇文章,因此请放轻松。

def pres(stack,input1):
    if(stack):
        top1 = stack[-1]
        precedence = {'^': 3,'/': 2,'*': 2,'+': 1,'-': 1}
        try:
            if(precedence[top1] >= precedence[input1]):
                return True
            else:
                return False
        except KeyError:
            return False
    else:
        return False


def func1(arr,capacity):
    stack = []
    output = []
    operators = ['+','-','*','/','^']
    top = -1
    for ch in arr:
        if(ch.isalpha()) == True:
            output.append(ch)

        elif(ch == '('):
            stack.append(ch)
            top += 1
        elif(ch == ')'):
            while((stack) and stack[-1] != '('):
                if(stack):
                    a = stack.pop()
                    top -= 1
                    output.append(a)
                else:
                    output.append('$')
                if((stack) and stack[-1] != '('):
                    return -1
                elif(stack):
                    stack.pop()
        else:
            while((top != -1) and pres(stack,ch)):
                if(stack):
                    a = stack.pop()
                    top -= 1
                    output.append(a)
                else:
                    output.append('$')
            top += 1
            stack.append(ch)
    while stack:
        if(stack):
            a = stack.pop()
            top -= 1
            output.append(a)
        else:
            output.append('$')
    print(*output,sep='')

arr='a+b*(c^d-e)^(f+g*h)-i'
arr = 'a+b-i+g-h*j'
func1(arr,len(arr))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...