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     
相关推荐
一晌小贪欢几秒前
Python 爬虫进阶:如何利用反射机制破解常见反爬策略
开发语言·爬虫·python·python爬虫·数据爬虫·爬虫python
久邦科技2 分钟前
奈飞工厂中文官网入口,影视在线观看|打不开|电脑版下载
学习
躺平大鹅10 分钟前
5个实用Python小脚本,新手也能轻松实现(附完整代码)
python
阿猿收手吧!14 分钟前
【C++】异步编程:std::async终极指南
开发语言·c++
yukai0800815 分钟前
【最后203篇系列】039 JWT使用
python
好好学习天天向上~~18 分钟前
6_Linux学习总结_自动化构建
linux·学习·自动化
晚霞的不甘26 分钟前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
小程故事多_8027 分钟前
Agent Infra核心技术解析:Sandbox sandbox技术原理、选型逻辑与主流方案全景
java·开发语言·人工智能·aigc
沐知全栈开发28 分钟前
SQL 日期处理指南
开发语言
望舒51330 分钟前
代码随想录day25,回溯算法part4
java·数据结构·算法·leetcode