博客
关于我
LeetCode--020--括号匹配
阅读量:799 次
发布时间:2023-01-31

本文共 742 字,大约阅读时间需要 2 分钟。

为了判断一个包含不同类型括号的字符串是否有效,我们可以使用栈数据结构。栈可以帮助我们跟踪括号的顺序,确保每个左括号都能被正确闭合。

输入包括六种括号字符:'('、')'、'{'、'}'、'['、']'。有效字符串要求左括号必须以正确的顺序和类型闭合。具体来说:

  • 每次遇到左括号,压入栈。
  • 每次遇到右括号,检查栈是否为空:
    • 如果栈为空,字符串无效。
    • 如果栈不为空,弹出栈顶字符,检查是否对应正确的左括号。
  • 遍历完整个字符串后,栈必须为空才表示闭合顺序正确。
  • 实现代码:

    class Solution:    def isValid(self, s: str) -> bool:        stack = []        for c in s:            if c in '({[':                stack.append(c)            elif c in ')]}':                if not stack:                    return False                top = stack.pop()                if (c == ')' and top != '(') or (c == '}' and top != '{') or (c == ']' and top != '['):                    return False        return len(stack) == 0

    这个方法通过遍历字符串一次,检查每个字符是否正确闭合,从而确保字符串的有效性。逻辑简单且效率高,时间复杂度为 O(n),其中 n 是字符串的长度。

    转载地址:http://vlgyk.baihongyu.com/

    你可能感兴趣的文章
    NuttX 构建系统
    查看>>
    NutUI:京东风格的轻量级 Vue 组件库
    查看>>
    NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
    查看>>
    NutzWk 5.1.5 发布,Java 微服务分布式开发框架
    查看>>
    NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
    查看>>
    Nuxt Time 使用指南
    查看>>
    NuxtJS 接口转发详解:Nitro 的用法与注意事项
    查看>>
    NVDIMM原理与应用之四:基于pstore 和 ramoops保存Kernel panic日志
    查看>>
    NVelocity标签使用详解
    查看>>
    NVelocity标签设置缓存的解决方案
    查看>>
    Nvidia Cudatoolkit 与 Conda Cudatoolkit
    查看>>
    NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
    查看>>
    NVIDIA-cuda-cudnn下载地址
    查看>>
    nvidia-htop 使用教程
    查看>>
    nvidia-smi 参数详解
    查看>>
    Nvidia驱动失效,采用官方的方法重装更快
    查看>>
    nvmw安装node-v4.0.0之后版本的临时解决办法
    查看>>
    nvm切换node版本
    查看>>
    nvm安装 出现 Error retrieving “http://xxxx/SHASUMS256.txt“: HTTP Status 404 解决方法
    查看>>
    nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
    查看>>