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)

相关推荐
biter down3 小时前
14:pytest-order 插件 顺序控制案例
开发语言·python·pytest
测试开发-学习笔记3 小时前
从0开始搭建自动化(一)-appium+python
python·自动化
㳺三才人子3 小时前
初探 Flask
后端·python·flask·html
AI算法沐枫4 小时前
机器学习到底是什么?
人工智能·python·深度学习·机器学习·数据挖掘·大模型·#ai
小技与小术4 小时前
玩转Flask
开发语言·python·flask
SilentSamsara4 小时前
Python 性能优化:tracemalloc、profiling 与 C 扩展加速
开发语言·python·青少年编程·性能优化
冰小忆4 小时前
大驼峰命名规范和小驼峰命名规范的区别是什么?
开发语言·python
高洁015 小时前
知识图谱:AI的超级大脑
人工智能·python·数据挖掘·知识图谱
Raink老师5 小时前
【AI面试临阵磨枪-62】设计基于 RAG 的内部知识库问答平台(多租户、权限、文件上传、实时更新)
人工智能·面试·职场和发展
知识分享小能手5 小时前
Flask入门学习教程,从入门到精通,Flask智能租房——前期准备 知识点详解(5)
python·学习·flask