括号匹配算法

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

例如

()

(()()())

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

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

复制代码
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
相关推荐
froginwe11几秒前
Highcharts 测量图:全面解析与优化实践
开发语言
m0_51509842几秒前
如何实现SQL数据分片规则更新_利用触发器同步元数据
jvm·数据库·python
qq_33003799几秒前
uni-app怎么实现App端蓝牙搜索与连接 uni-app低功耗蓝牙开发【代码】
jvm·数据库·python
带娃的IT创业者2 分钟前
深度解析 Qwen3.6-35B-A3B:重塑 AI 编程代理的开源新标杆
人工智能·python·ai·开源·大模型·qwen·编程代理
qq_654366982 分钟前
SQL中如何通过JOIN实现级联删除_利用外键约束与JOIN辅助
jvm·数据库·python
2301_764150562 分钟前
layui form禁用表单元素 layui如何disable一个输入框
jvm·数据库·python
雪芽蓝域zzs3 分钟前
uni-app x 使用 UTS 语言使用 mixins
开发语言·javascript·uni-app
weixin_458580126 分钟前
CSS如何为Bootstrap模态框增加进入动画_利用transition实现
jvm·数据库·python
justjinji12 分钟前
Go语言如何用Jaeger_Go语言Jaeger链路追踪教程【完整】
jvm·数据库·python
m0_7436239212 分钟前
开发者工具怎么看HTML_Elements面板使用指南【操作】
jvm·数据库·python