LeetCode 热题100-69 有效的括号

有效的括号

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

这道比较简单,栈的思想,开口朝右的压栈,匹配到开口朝左的字符就和栈顶匹配一下,成功就栈顶弹出,否则return False,最后看看栈里空不空(如果不空说明栈里还有其他没有匹配的开口朝右的字符)(更简化的可以用字典存一下对应关系,然后直接用键值对写 if 语句)

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        if len(s)%2!=0:return False
        a = []
        for i in s :
            if i == '(' or i == '{' or i == '[':a.append(i)
            else:
                if len(a) == 0:return False
                if i == ')' and a[-1] == '(':a.pop()
                elif i == '}' and a[-1] == '{':a.pop()
                elif i == ']' and a[-1] == '[':a.pop()
                else:return False
        if len(a) != 0:return False
        return True
相关推荐
2301_822375442 分钟前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_706653233 分钟前
跨语言调用C++接口
开发语言·c++·算法
2301_790300963 分钟前
Python类型提示(Type Hints)详解
jvm·数据库·python
皮皮哎哟5 分钟前
数据结构:从队列到二叉树基础解析
c语言·数据结构·算法·二叉树·队列
Eric.Lee20219 分钟前
SLAM 路径规划的安全走廊实现
python·机器人·ros·路径规划·避障·安全走廊
一匹电信狗14 分钟前
【高阶数据结构】并查集
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio
小W与影刀RPA15 分钟前
【影刀RPA】:智能过滤敏感词,高效输出表格
大数据·人工智能·python·低代码·自动化·rpa·影刀rpa
Yorlen_Zhang21 分钟前
python Tkinter Frame 深度解析与实战指南
开发语言·python
2401_8384725122 分钟前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python
愚者游世31 分钟前
list Initialization各版本异同
开发语言·c++·学习·程序人生·算法