zoukankan      html  css  js  c++  java
  • 算法之堆栈

    # 判断一个字符串中的有效括号()[]{}是否有效
    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('{}()[]'))
  • 相关阅读:
    nginx 安装配置
    mysql分表
    冲刺day7
    冲刺day6
    冲刺day5
    冲刺day4
    冲刺day3
    冲刺day2
    冲刺day1
    撰写《需求规格说明书》的工作流程、组员分工和组员工作量比例
  • 原文地址:https://www.cnblogs.com/yaoqingzhuan/p/12916340.html
Copyright © 2011-2022 走看看