classStack(object):def__init__(self,limit =10):
self.stack =[1,2,3]#存放元素
self.limit = limit #栈容量极限#push进栈defpush(self,data):#判断栈是否溢出iflen(self.stack)>= self.limit:raise IndexError('超出栈容量极限')
self.stack.append(data)#pop退栈defpop(self):if self.stack:return self.stack.pop()else:raise IndexError('pop from an empty stack')#空栈无法弹出#查看堆栈最上面的元素defpeek(self):if self.stack:return self.stack[-1]#判断栈是否为空defis_empty(self):returnnotbool(self.stack)#返回栈的大小defsize(self):returnlen(self.stack)
栈快速应用-括号匹配
classStack(object):#初始化def__init__(self,limit =10):
self.stack =[]
self.limit = limit
#进栈操作defpush(self,data):iflen(self.stack)>= self.limit:raise IndexError('超出栈容量极限')
self.stack.append(data)#出栈操作defpop(self):if self.stack:return self.stack.pop()else:return IndexError('pop from an empty stack')#查看栈顶最上面的元素defpeek(self):if self.stack:return self.stack[-1]#判空defis_empty(self):returnnotbool(self.stack)#长度deflength(self):returnlen(self.stack)#判断括号是否匹配defbalanced_parentheses(parentheses):
stack = Stack(len(parentheses))for parenthesis in parentheses:if parenthesis =='(':
stack.push(parenthesis)elif parenthesis ==')':if stack.is_empty():returnFalse
stack.pop()return stack.is_empty()if __name__ =='__main__':
kuo =[list(i for i ininput())for i inrange(3)]print('Balanced parentheses demonstration:\n')for k in kuo:print('True or False',balanced_parentheses(k))