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     
相关推荐
IT北辰5 小时前
Python实现居民供暖中暖气能耗数据可视化分析(文中含源码)
开发语言·python·信息可视化
FreeCode5 小时前
LangChain1.0智能体开发:长期记忆
python·langchain·agent
Broken Arrows5 小时前
排查网络问题的一些工具的作用和常用使用方法
linux·网络·学习
KWTXX5 小时前
组合逻辑和时序逻辑的区别
java·开发语言·人工智能
高山上有一只小老虎5 小时前
字符串字符匹配
java·算法
wjs20246 小时前
Go 语言结构体
开发语言
程序猿_极客6 小时前
JavaScript 的 Web APIs 入门到实战全总结(day7):从数据处理到交互落地的全链路实战(附实战案例代码)
开发语言·前端·javascript·交互·web apis 入门到实战
Predestination王瀞潞6 小时前
Python __name__ 与 __main__
开发语言·python
愚润求学6 小时前
【动态规划】专题完结,题单汇总
算法·leetcode·动态规划
萧曵 丶6 小时前
Python 字符串、列表、元组、字典、集合常用函数
开发语言·前端·python