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     
相关推荐
多弗朗皮卡丘2 分钟前
C++异常
开发语言·c++·异常
米糕闯编程8 分钟前
鱼香ros2(十七)C++小海龟巡逻
开发语言·c++·机器人·ros2·服务·小海龟
郝学胜-神的一滴16 分钟前
NumPy深度解析|Python数值计算的基石,告别低效for循环
开发语言·人工智能·python·程序人生·numpy·量化投资
hackchen31 分钟前
LangChain 学习第 2 课 - 提示词模板(Prompt Template)
学习·langchain·prompt
\光辉岁月/32 分钟前
15.JavaSE-网络
java·开发语言·网络
喵本喵叁肆33 分钟前
diffprivlib 中文实战教程 · 第8讲:实战——从零改造一个 DP 模型
python·neo4j·差分隐私
兰亭妙微UI设计公司38 分钟前
兰亭妙微软件界面设计公司的解锁按钮设计10大密码
开发语言·前端·javascript
Smoothcloud润云38 分钟前
PyTorch推理输入长度分桶与Padding优化实战:减少无效计算
人工智能·pytorch·python·深度学习·gpu算力
人邮异步社区44 分钟前
C语言好学,还是Python好学?
c语言·开发语言·python
zx_741484811 小时前
YOLOv3 核心原理详解:Darknet-53 架构、多尺度预测与 FPN 特征融合
算法·yolo·目标检测·yolov3