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     
相关推荐
小_太_阳11 分钟前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾14 分钟前
scala借阅图书保存记录(三)
开发语言·后端·scala
老刘莱国瑞19 分钟前
STM32 与 AS608 指纹模块的调试与应用
python·物联网·阿里云
唐 城35 分钟前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust
火星机器人life1 小时前
基于ceres优化的3d激光雷达开源算法
算法·3d
Web阿成1 小时前
3.学习webpack配置 尝试打包ts文件
前端·学习·webpack·typescript
虽千万人 吾往矣1 小时前
golang LeetCode 热题 100(动态规划)-更新中
算法·leetcode·动态规划
一只敲代码的猪1 小时前
Llama 3 模型系列解析(一)
大数据·python·llama
雷神乐乐1 小时前
Spring学习(一)——Sping-XML
java·学习·spring