要求:
给一个字符串,其中包含小括号、中括号、大括号,求该字段中的括号是否匹配
例如:
1.{{[()]}} 匹配
2.[]( 不匹配
3.{}{}] 不匹配
分析:
通过入栈出栈、栈首与下一个字符串做匹配比较
代码:
class Stack:
def __init__(self):
self.stack = []
def __str__(self):
return self.stack
def push(self, element):
self.stack.append(element)
def pop(self):
return self.stack.pop()
def get_top(self):
return self.stack[-1]
def is_empty(self):
return len(self.stack) == 0
def kuohao_match(s):
match ={")":"(","]":"[","}":"{"}
stack = Stack()
for ch in s:
if ch in ["[","{","("]:
stack.push(ch)
else:
if stack.is_empty():
return False
elif stack.get_top() == match[ch]:
stack.pop()
else: # stack.get_top() == match[ch]
return False
if stack.is_empty():
return True
return False
print(kuohao_match('{{[]}}'))
# reslut
# True