当前位置: 首页 > news >正文

【leetcode100】有效的括号

1、题目描述

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

有效字符串需满足:

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

示例 1:

        输入:s = "()"

        输出:true

示例 2:

        输入:s = "()[]{}"

        输出:true

示例 3:

        输入:s = "(]"

        输出:false

2、初始思路

2.1 思路

对于左括号“([{“直接将其加入stack中,在检测到右括号时判断其是否有对应的正确的左括号,如果有,则弹出左括号,如果没有,则说明字符串是无效的,可以直接返回False.

2.2 代码

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        if not s:
            return True
        if len(s) % 2 != 0:
            return False
        for i in s:
            if not stack or i == '(' or i == '[' or i == '{':
                stack.append(i)
            elif i == ')' and stack[-1] == '(':
                stack.pop()
            elif i == ']' and stack[-1] == '[':
                stack.pop()
            elif i == '}' and stack[-1] == '{':
                stack.pop()
            else:
                return False
        if not stack:
            return True
        else:
            return False
http://www.dtcms.com/a/100515.html

相关文章:

  • Linux系统:进程状态与僵尸、孤儿进程
  • Day 26:哈希 + 双指针
  • 『Linux』 第十一章 线程同步与互斥
  • 零基础上手Python数据分析 (10):DataFrame 数据索引与选取
  • 滤波---概览
  • [Lc5_dfs+floodfill] 简介 | 图像渲染 | 岛屿数量
  • tomcat部署项目打开是404?
  • 人工智能之数学基础:基于正交变换将矩阵对角化
  • JavaScript 中的闭包及其应用
  • 【零基础入门unity游戏开发——通用篇】SpriteEditor图片编辑器
  • 【CF】Day19——Codeforces Round 904 (Div. 2) C
  • 八股总结(Java)实时更新!
  • Cursor软件设置中文版教程
  • 刷题日记day15-按身高和体重排队
  • swagger问题解决
  • 【常春藤盟校的「社会资本交易所」本质】
  • 什么是Java值传递和引用传递?
  • prism wpf 入门
  • 自动化部署核心概念与实践
  • Redis 哈希表结构详解
  • QtAV入门
  • 两数之和-力扣
  • 【Redis】基础1——基本概念,基本数据结构
  • 如何快速搭建高可用 Easysearch 集群 ?Ubuntu 多节点部署指南
  • 基于WMI与WinRM的横向移动技术深度解析
  • C语言函数递归
  • 程序化广告行业(44/89):岗位职责与RTB竞价逻辑深度解析
  • 算法练习篇目:删除有序数组中的重复项
  • Spring Cloud Alibaba 技术全景与实战指南
  • 多路径软件multipath配置详解