括号匹配算法

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

例如

()

(()()())

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

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

复制代码
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
相关推荐
许彰午几秒前
06_Java面向对象入门
java·开发语言·python
ZHW_AI课题组1 分钟前
使用 Rectified Flow 和 Diffusion Transformer实现 MNIST 手写数字图像生成
人工智能·python·机器学习
Java_2017_csdn1 分钟前
Java 策略模式(Strategy Pattern)-(二)
java·开发语言·策略模式
Royzst5 分钟前
一、IO 概述
开发语言·python
Java_2017_csdn5 分钟前
Java 策略模式(Strategy Pattern)-(一)
java·开发语言·策略模式
思茂信息6 分钟前
CST对一种用于中型无人机 433MHz 通信的宽带共形贴片天线
开发语言·单片机·嵌入式硬件·平面·无人机·cst
Omics Pro6 分钟前
P4医学4大支柱需绑定4大数字技术才可落地
人工智能·python·算法·机器学习·plotly
海鸥-w7 分钟前
前端学习python第三天笔记整理(list 列表,str字符串,tuple元组,set集合,dect,函数,类型注解)
前端·python·学习
机器学习是魔鬼13 分钟前
在矩池云上开箱即用Energy Forecasting:能源电力电价预测实战指南
人工智能·python·机器学习
石山代码14 分钟前
java 反射
java·开发语言·tomcat