采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return not self.items
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
def peek(self):
if not self.is_empty():
return self.items[-1]
def size(self):
return len(self.items)
def paren_match(expr):
s = Stack()
balanced = True
index = 0
while index < len(expr) and balanced:
symbol = expr[index]
if symbol in '([{':
________________
else:
if s.is_empty():
balanced = False
else:
top = s.pop()
if not matches(top, symbol):
balanced = False
index += 1
if balanced and s.is_empty():
return True
else:
return False
def matches(opening, closing):
opens = '([{'
closers = ')]}'
return opening in opens and closers.index(closing) == opens.index(opening)
s.push(symbol)
s.pop(symbol)
s.push(index)
s.pop(index)