# 判断一个字符串中的有效括号()[]{}是否有效
def is_invalid(s):
    stack = []
    for i in s:
        # 遇到左括号,则添加到堆栈中
        if i == '(' or i == '[' or i == '{':
            stack.append(i)
        else:
            # 遇到右括号, 先判断堆栈中是否有值, 如果没有,说明多了一个右括号, 直接返回False
            if len(stack) == 0:
                return False
            # 判断右括号与堆栈中的栈顶元素是否匹配,匹配则pop,否则返回False
            if (i == ')' and stack[-1] == '(' ) or (i == ']' and stack[-1] == '[') or (i == '}' and stack[-1] == '{'):
                stack.pop()
            else:
                return False
    return len(stack) == 0


if __name__ == '__main__':
    print(is_invalid('1{}()[]'))
    print(is_invalid('{}()[]'))

 

相关文章:

  • 2021-09-14
  • 2021-10-20
  • 2022-12-23
  • 2022-01-31
  • 2021-07-19
  • 2021-08-17
  • 2021-07-19
猜你喜欢
  • 2022-12-23
  • 2021-11-15
  • 2021-09-30
  • 2021-09-14
  • 2021-04-25
  • 2022-12-23
  • 2021-06-30
相关资源
相似解决方案