class Stack:
def __init__(self):
self.items = []
def pop_(self):
return self.items[-1]
def pop(self):
return self.items.pop()
def get_length(self):
return len(self.items)
def push(self, elem):
return self.items.append(elem)
def Match_blankets(string):
stack = Stack()
stack2 = Stack()
match_dict = {")": "(", "]": "[", "}": "{"}
for i in string:
if i in {"(", "[", "{"}:
stack.push(i)
elif i in {")", "]", "}"}:
get_ = stack.pop_()
if get_ == match_dict[i]:
stack.pop()
else:
stack2.push(i)
else:
print("括号不纯!")
return -1
if stack.get_length() != stack2.get_length():
print("匹配失败!")
return -1
else:
for i in stack2.items:
get_new = stack.pop_()
if get_new == match_dict[i]:
stack.pop()
stack2.pop()
if stack.get_length() == 0 and stack2.get_length() == 0:
print("匹配成功!")
return 0
if __name__ == "__main__":
string = input("请输入括号!")
Match_blankets(string)
class Stack:
def __init__(self):
self.items = []
def pop_(self):
return self.items[-1]
def pop(self):
return self.items.pop()
def get_length(self):
return len(self.items)
def push(self, elem):
return self.items.append(elem)
def haa(stack,stack2,stack3,n):
if n==1:
i=stack.pop()
stack2.push(i)
else:
haa(stack,stack3,stack2,n-1)
j=stack.pop()
stack2.push(j)
haa(stack3,stack2,stack,n-1)
if __name__ == "__main__":
stack = Stack()
stack2 = Stack()
stack3 = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
stack.push(4)
haa(stack,stack2,stack3,4)
for i in range(0,4):
r=stack2.pop()
print(r)