单选题

采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为(    )。

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)

A

s.push(symbol)

B

s.pop(symbol)

C

s.push(index)

D

s.pop(index)

赣ICP备20007335号-2