leetcode6 括号匹配

示例 1:

复制代码
输入:s = "()"
输出:true

示例 2:

复制代码
输入:s = "()[]{}"
输出:true

示例 3:

复制代码
输入:s = "(]"
输出:false

法一:最容易想到的是利用堆栈,先检索遇到左括号push;如果不是左括号,先判断是否有左括号(栈非空)否则返回Fals,判断右括号和栈顶元素是否配对,配对就pop,否则就返回Fals;最后返回还要检查栈非空和是否成对

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        length=len(s)
        if length%2 !=0:
            return False
        else:
            s1=[]
            count=0
            for i in range(length):
                if s[i] in "({[":
                    s1.append(s[i])
                else:
                    if not s1:
                        return False
                    if s[i]==")" and s1[-1]=="(":
                        count+=1
                    elif s[i]=="]" and s1[-1]=="[":
                        count+=1
                    elif s[i]=="}" and s1[-1]=="{":
                        count+=1
                    else:
                        return False
                    s1.pop()                
            return not s1 and count==length//2     
相关推荐
tsfy20033 分钟前
Python批量调整Excel格式,并排版导出PDF
python·pdf·excel
半导体守望者6 分钟前
AE电源闭环控制——反应溅射的集成解决方案
经验分享·学习·机器人·自动化·制造
AI科技星7 分钟前
数术宇宙:零一无穷创世史诗
开发语言·网络·量子计算·拓扑学
木囧16 分钟前
PyCharm手动创建虚拟环境
ide·python·pycharm
李可以量化20 分钟前
QMT 量化实践:两种方式获取个股上市日期(内置 Python + 原生 Python 完整可运行代码)
python
小饕26 分钟前
RAG学习之【向量数据库】Milvus 从入门到精通:索引、检索、混合搜索一篇打通(RAG 必备)
数据库·人工智能·学习·milvus
是多巴胺不是尼古丁28 分钟前
期末java复习--string
java·开发语言·python
Survivor00134 分钟前
高并发系统流量治理的底层算法
java·开发语言
bIo7lyA8v36 分钟前
算法可视化对教学与调试效率的影响分析的技术8
算法
郝学胜-神的一滴43 分钟前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake