Stack adt python平衡括号

时间:2018-04-20 04:46:37

标签: python

编写一个名为balanced_brackets()的函数。此函数将作为输入传递一个字符串,您必须检查字符串中的任何括号或有角括号,即:'(','<',')'和'>'是否正确平衡。

我正在努力如何做到正确而忽略任何符号。有人可以帮帮我吗?这是我的编码:

def balanced_brackets(text):
    s = Stack()
    balanced = True
    index = 0
    while index < len(text) and balanced:
        symbol = text[index]
        if symbol in "(<":
            s.push(symbol)
        else:
            index += 1

        index = index + 1

    if balanced and s.is_empty():
        return True
    else:
        return False

这是输出的屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:2)

您的方法存在许多错误。

正确的步骤应该是

  1. 遇到{ "scripts": { "start": "MONGO_URL=mongodb://localhost/db meteor --settings private/settings.json", }, } (时将其推入堆栈
  2. 遇到<)时:
    1. 将它与顶部堆栈值进行比较,看它们是否匹配
    2. 如果匹配则弹出堆栈顶部值
    3. 如果它们不匹配,则字符串不均衡
  3. 如果每个遇到的>)匹配堆栈的最高值,并且最后堆栈为空,则字符串是平衡的。