括号匹配算法

括号匹配算法用于检查一个字符串中的括号是否正确匹配,确保每个开括号都有相应的闭括号,并且它们的顺序是正确的。

例如

()

(()()())

上面这些都是正确的括号匹配

是栈这种数据结构的应用场景之一

复制代码
class Stack:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return len(self.items) == 0
        
    def push(self,item):
        self.items.append(item)
    
    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items[len(self.items) - 1]
    
    def size(self):
        return len(self.items)

实现这个算法需要使用栈这种数据结构,当然其实数组也是可以的。不过一般来说,这是最能体现栈这种数据结构特点的应用场景

具体实现

python 复制代码
def parChecker(symbolString):
    s = Stack()
    balanced = True
    index = 0
    while index < len(symbolString) and balanced:
        symbol = symbolString[index]
        if symbol == "(":
            s.push(symbol)
        else:
            if s.isEmpty():
                balanced = False
            else:
                s.pop()

        index = index + 1
    
    if balanced and s.isEmpty():
        return True
    else:
        return False
相关推荐
王志来137944730081 分钟前
聚焦五大核心场景:工控服务器机箱平台的垂直深耕之路
运维·服务器·python
xixiaoyunya2 分钟前
从零搭建跨域互联网络:个人与小团队的轻量组网方案技术解析
开发语言·智能路由器·php
资源大佬星 课it7 分钟前
黑马 Java+AI新版V16零基础就业班视频课程百度网盘下载
java·开发语言·人工智能
zmzb01039 分钟前
Python课后习题训练记录Day193
开发语言·python
卷无止境10 分钟前
LiteLLM 全面解析开源AI网关如何统一管理百余种大模型
后端·python
郝学胜-神的一滴13 分钟前
[简化版 GAMES 104] 现代游戏引擎 06:从Tick时序到邮局模型,拆解确定性世界的底层密码
开发语言·c++·游戏引擎·图形渲染·软件开发·opengl
二十雨辰14 分钟前
[Java]-微服务面试题
java·开发语言·微服务
不会代码的小猴14 分钟前
6. Qt网络编程
开发语言·c++·笔记·qt·算法
caimouse21 分钟前
ReactOS 图形系统分析(50):画笔子系统 — pen.c
c语言·开发语言·stm32
我的xiaodoujiao30 分钟前
使用PyMySQL模块技术操作MySQL数据库
数据库·python·测试工具·mysql