括号匹配实现

# 括号匹配
#先准备堆栈类

class Lstack():
    def __init__(self,top=-1,full=20):
        self._top = top
        self._stack=[]
        self.full = full
    def is__full(self):
        return self.full == self._top+1
    def is_empty(self):
        return self._top == -1
    def push(self,x):
        if self.full == self._top+1:
            print("堆栈已满")
        else:
            self._stack.append(x)
            self._top += 1
    def pop(self):
        if self._top == -1:
            print("堆栈为空,不可弹出")
        else:
            top =self._top
            self._top -= 1
            return self._stack.pop(top) 

def check_parens(chr_me): # 输入需要检查的字符串
    parens="{[("
    dic={'{':'}', '(':')', '[':']'}
    save= Lstack()
    for i in chr_me:
        if i in parens:
            save.push(i)
        if i in "}])":
            if save.is_empty():
                print("缺少括号,请检查")
                return False
            v=save.pop()
            if dic[v] ==i:
                pass
            else:
                print('缺少括号,请检查')
                return False

    '''最后结束的时候,检查一下堆栈是否为空'''
    if save.is_empty():
        print('完全没有问题')
    else:
        print('缺少括号,请检查')
    
if __name__=='__main__':
    check_parens('{{}})')

猜你喜欢

转载自blog.csdn.net/tommy1295/article/details/80940149
今日推荐