# 括号匹配
#先准备堆栈类
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
今日推荐
周排行