首页 > 其他分享 >栈的应用--括号匹配问题

栈的应用--括号匹配问题

时间:2023-08-17 12:22:05浏览次数:29  
标签:ch return -- self 括号 def 匹配 stack match

博客地址:https://www.cnblogs.com/zylyehuo/

# -*- coding: utf-8 -*-

class Stack:

    def __init__(self):
        self.stack = []

    def push(self, element):
        self.stack.append(element)

    def pop(self):
        return self.stack.pop()

    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 brace_match(s):
    match = {'}': '{', ']': "[", ')': '('}
    stack = Stack()
    for ch in s:
        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


print(brace_match('[{()}(){()}[]({}){}]'))
print(brace_match('[]}'))

标签:ch,return,--,self,括号,def,匹配,stack,match
From: https://www.cnblogs.com/zylyehuo/p/17637279.html

相关文章

  • 网页CAD的mxdraw库实现Autocad中的圆
    前言​Web端显示CAD图纸的应用场景很广泛,单纯的浏览DWG逐渐满足不了用户的实际需求,浏览的同时再加上简单的绘制和批注更符合大家的应用场景,接下来我们讲一下如何利用Mxdraw库实现AutoCAD中的画圆命令。首先我们知道DWG图纸要在网页上显示需要安装转换程序,在测试开始之前,我们要熟......
  • .NET-10-Edge插件开发
    目录有点意思,不过都是前端呢参考链接:官方文档Chromeapi照搬就好,扩展的话,亲手试了一下,有点那个味道,要深入研究下,不过大部分都是js,得学习才好。......
  • 搭载KaihongOS的工业平板、机器人、无人机等产品通过3.2版本兼容性测评,持续繁荣OpenHa
    近日,搭载深圳开鸿数字产业发展有限公司(简称“深开鸿”)KaihongOS软件发行版的工业平板、机器人、无人机等商用产品均通过OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Release版本兼容性测评,获颁OpenHarmony生态产品兼容性证书。这标志着OpenHarmony生态在新兴行业的......
  • CE认证
    CE认证,即只限于产品不危及人类、动物和货品的安全方面的基本安全要求,而不是一般质量要求,协调指令只规定主要要求,一般指令要求是标准的任务。 因此准确的含义是:CE标志是安全合格标志而非质量合格标志。是构成欧洲指令核心的"主要要求"。 “CE”标志是一种安全认证标志,被视为......
  • TDengine 全新打造数据接入功能,让 MQTT 无缝数据接入变得很简单
    我们非常高兴地宣布,TDengine企业版和 TDengineCloud 正式推出重磅功能,这一功能主打无缝数据接入支持,旨在帮助用户彻底改善数据接入体验。作为一款创新性的解决方案,TDengine企业版和TDengineCloud可以直接将MQTT服务器中的数据无缝写入 TDengine数据库进行存储和分析。......
  • Access denied for user 'root'@'localhost'
    一、概述在SpringBoot+MyBatis+MySQL环境搭建连接数据库。通过mvnspring-boot:run运行项目的时候出现的编译错误。Accessdeniedforuser'root'@'localhost'错误的原因是数据库连接的账号或者密码可能不对。如下图所示: 二、解决问题解决办法也很简单:......
  • Cs_Reply address
    \xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10......
  • 安科瑞变电所运维系统在电力系统的应用及案例分析 
    未晓妃安科瑞电气股份有限公司上海嘉定201801摘要:电力系统在电力企业中具有应用价值,随着电力系统的规模扩大,电力设备的应用量增加,考虑到电力系统的当前运行情况以及不断增加的电能*,相关工作单位需要加强变电运维技术的应用,保障变电运效益。为此,既有的变电运维系统应当被改进。现......
  • 研发团队绩效考核:Leader 如何做到赏罚分明?
    今天话题的主题是Leader如何在绩效考核中做到赏罚分明?作者是苏宁金科CTO肖军要想做到赏罚分明就需要先明确:什么人因为做了什么事,基于什么量化指标和规则,获得什么权益或处罚。技术考核很难落地,有三个原因难以找到关键指标团队成员难以分配绩效权重考核结果难以强应用难以找到关键......
  • [java基础知识复习] Java基础知识总结分享一
    写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。————......