python-leetcode 68.有效的括号

题目:

给定一个只包括"("')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:左括号必须用相同类型的右括号闭合;左括号必须以正确的顺序闭合,每个右括号都有一个对应相同类型的左括号


根据栈这种数据结构。栈的特点是后进后出,即最后放入的元素会被最先取出,这与括号的闭合顺序是吻合的。

具体步骤如下:

1:初始化一个空栈

2:遍历字符串中的每一个字符:

如果遇到左括号,将其压入栈中。

如果遇到右括号,检查栈顶的元素是否是对应的左括号。如果是,弹出栈顶元素,表示括号匹配成功。如果不是,或者栈为空,即没有对应的左括号,则字符串无效

3:遍历结束后,检查栈是否为空:如果栈为空,说明所有括号都正确闭合,字符串有效。如果栈不为空,说明有未闭合的左括号,字符串无效。

python 复制代码
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        if len(s)%2 !=0:
            return False

        stack=[]
        mapping={")":"(","}":"{","]":"["}
        
        for char in s:
            if char in mapping.values():
                stack.append(char)

            else:
                if not stack or stack.pop()!=mapping[char]:
                    return False
        return not stack

时间复杂度:O(n) n是字符串的长度,每个字符的入栈和出栈操作都是O(1)

KO空间复杂度:O(n)

相关推荐
星火开发设计24 分钟前
Python数元组完全指南:从基础到实战
开发语言·windows·python·学习·知识·tuple
郝学胜-神的一滴26 分钟前
深入浅出:Python类变量与实例变量的核心差异与应用实践
开发语言·python·程序人生
炽烈小老头27 分钟前
【每天学习一点算法 2026/01/08】计数质数
学习·算法
h7ml28 分钟前
企业微信通讯录同步服务的增量更新算法与冲突解决策略
服务器·算法·企业微信
黎雁·泠崖29 分钟前
二叉树综合拔高:遍历还原与OJ题拓展训练
c语言·数据结构·leetcode
2503_9469718632 分钟前
【BruteForce/Pruning】2026年度物理层暴力破解与神经网络剪枝基准索引 (Benchmark Index)
人工智能·神经网络·算法·数据集·剪枝·网络架构·系统运维
BinaryBoss34 分钟前
Python mongodb批量修改数据库某个字段
数据库·python·mongodb
旦莫34 分钟前
自动化测试需求分析:从“做对”到“做好”的前提
python·测试开发·自动化·需求分析·ai测试
dagouaofei36 分钟前
工作计划 PPT 使用 AI 生成,与传统制作方式有什么不同
人工智能·python·powerpoint
R&ain36 分钟前
C++的内联函数
c++·算法