编辑代码

#!/usr/bin/env python
# encoding: utf-8
class Stack:                  #此类为实例化一个栈
    def __init__(self):
        self.stack = []

    def push(self, element):  # 入栈
        self.stack.append(element)

    def pop(self):  # 出栈
        if len(self.stack) > 0:
            self.stack.pop()
        else:
            return None

    def get_top(self):  # 查看栈顶元素
        if len(self.stack) > 0:
            return self.stack[-1]
        else:
            return None

    def is_empty(self):  # 判断栈是否为空
        return len(self.stack) == 0

def brach_match(str1):
    """
    判断括号是否匹配问题
    :param str1: 字符串,即要判断是括号
    :return: 是否匹配
    """
    match = {')': '(', '}': '{', ']': '['}
    for ch in str1:
        if ch in {'(', '[', '{'}:
            stack.push(ch)
        else:  # 即 ch in {')', ']', '}'}:
            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
    else:
        return False


if __name__ == '__main__':
    stack = Stack()
    s1=input("请输入字符串:")
    s2=input("请输入字符串:")
    print(brach_match(s1))
    print(brach_match(s2))