leetcode有效的括号-中等

news2024/12/25 2:07:42

题目描述

在这里插入图片描述

解题思路

不要被事例骗到,没有事例中写的那么简单,其中还包括([ ])这种例子。如果是计算机本专业的同学来说,一眼看出来,需要使用栈的数据结构。在python中需要使用列表进行。如果匹配的是左括号,就将当前符号加入列表,如果是右括号,那么判断符号的类型(大,中,小),进行出栈,如果出队的元素的和当前访问的元素是一对,那么不做处理,如果不是一对,直接返回False即可,等到最后的时候,如果遍历完所有的元素,栈为空,说明所有的元素均符合规则。除此之外,我们还需要考虑的一种情况就是只有右边括号,如果此时栈为空,那么直接return False。

代码实现

class Solution:
    def isValid(self, s: str) -> bool:
        #判断字符的长度,借助列表
        result=[]
        for i in range(0,len(s)):
            if s[i]=="{":
                result.append(s[i])
            elif s[i]=="(":
                result.append(s[i])
            elif s[i]=="[":
                result.append(s[i])
            else:
                if result==[]:
                    return False
                item=result.pop()
                if s[i]=="}":
                    if item!="{":
                        return False
                elif s[i]==")":
                    if item!="(":
                        return False
                elif s[i]=="]":
                    if item!="[":
                        return False
                else:
                    continue

        if result==[]:
            return True
        else:
            return False
        # sum=0
        # for i in range(0,len(s)):
        #     i=i+sum
        #     if i>=len(s):
        #         break

        #     if s[i]=="(":
        #         if i+1>=len(s):
        #             return False
        #         else:
        #             if s[i+1]!=")":
        #                 return False
        #             else:
        #                 sum=sum+1
        #                 continue
        #     elif s[i]=="[":
        #         if i+1>=len(s):
        #             return False
        #         else:
        #             if s[i+1]!="]":
        #                 return False
        #             else:
        #                 sum=sum+1
        #                 continue
        #     elif s[i]=="{":
        #         if i+1>=len(s):
        #             return False
        #         else:
        #             if s[i+1]!="}":
        #                 return False
        #             else:
        #                 sum=sum+1
        #                 continue
        # return True
        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1472327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这几个Python内置函数你都知道吗

divmod() divmod() 是一个 Python 内置函数,用于同时返回商和余数。它接受两个参数,第一个参数是被除数,第二个参数是除数,返回一个包含两个值的元组,第一个值是商,第二个值是余数。 示例用法如下&#…

Linux使用Docker部署Nacos容器并结合内网穿透实现公网访问本地服务

文章目录 推荐1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Plik 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&#xff…

计算机组成原理 — 存储器(2)

高速缓冲存储器 大家好呀!我是小笙,由于存储器这部分章节内容较多,我分成二部分进行总结,以下是第二部分,希望内容对你有所帮助! 概述 目的:避免CPU空等现象 原理:程序访问的局部…

基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 .................................................................. load yolov2.mat% 加载…

【Docker】03 容器操作

文章目录 一、流转图二、基本操作2.1 查看本地容器进程2.2 启动容器2.2.1 交互式启动容器2.2.2 后台启动容器 2.3 进入容器2.4 停止启动重启容器2.5 退出容器2.6 删除容器2.7 提交容器(打包成镜像)2.8 拷贝文件2.8.1 拷贝容器内文件到宿主机2.8.2 拷贝宿…

机器学习理论知识学习

机器学习介绍 让机器有能力去根据数据学习 不是人类的if和else控制 机器学习分类 监督学习: 最成熟,落地案例最多。我们的视觉处理大多数都是监督学习。 小孩学习,类似监督学习,这是猫,这是狗,这是兔子 非监督学习:找到不同类型的数据,kmeans 聚类算法 帮助梳理不…

软考47-上午题-【数据库】-数据查询语言DQL2

一、聚合函数 聚合函数实现数据统计的功能,返回一个单一的值。聚合函数一般与select语句的group by子句一起使用。 示例: 二、数据分组-group by 聚合函数加上group by子句进行分组。 通常一个聚合函数的作用范围是满足where子句中指定条件的记录&…

【刷题】leetcode 1544.整理字符串

刷题 1544.整理字符串思路一(模拟栈速解版)思路二 (原地算法巧解版)思路三(C栈版) Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见&#xff…

罗克韦尔AB的PLC实现ModbusTCP和ModbusRTU协议标签方式通讯

本文是通过IGT-DSER智能网关读写AB罗克韦尔Compact、Control系列PLC的标签数据缓存并转为Modbus从站协议,与上位机通讯的案例。 打开智能网关的参数软件(下载地址),通过功能->数据转发与平台对接,再选择数据转发与缓存’,进入以…

探索Allure Report:提升自动化测试效率的秘密武器!

一.使用 Allure2 运行方式-Python # --alluredir 参数生成测试报告。 # 在测试执行期间收集结果 pytest [测试用例/模块/包] --alluredir./result/ (—alluredir这个选项 用于指定存储测试结果的路径)# 生成在线的测试报告 allure serve ./result二.使用 Allure2 运行方式-Ja…

Elasticsearch 创建index库 timeout

问题概述 使用 python 客户端 代码进行创建,【之前成功创建,但是现在出现报错,报错代码es_connection.client.indices.create】def create_vector_index(dataset_index_name,vector_query_field,query_field):es_connection = get_collention(dataset_index_name,vector_que…

Linux调用可执行程序:system()函数和execl函数

system()函数: system()函数是一个在C/C编程语言中的库函数,用于在操作系统中执行命令。 函数声明如下: int system(const char *command);该函数接受一个指向以空字符结尾的字符串的指针作为参数,该字符串包含要执行的命令。函…

福特锐界2021plus 汽车保养手册

福特锐界2021plus汽车保养手册两页,零部件保养要求,电子版放这里方便查询:

2024.02.23作业

1. 尝试处理普通信号 #include "test.h"#define MAXSIZE 128void handler(int signo) {if (SIGINT signo){printf("用户按下了 ctrl c 键\n");} }int main(int argc, char const *argv[]) {if (signal(SIGINT, SIG_IGN) SIG_ERR){perror("signal …

【C++】---内存管理new和delete详解

一、C/C内存分布 C/C内存被分为6个区域: (1) 内核空间:存放内核代码和环境变量。 (2)栈区:向下增长(存放非静态局部变量,函数参数,返回值等等) …

帧同步原理

帧同步和状态同步区别 状态同步:发操作,收状态 帧同步:发操作,收操作 逻辑严格排序 经常会有需要排序的列表或者数组,比如攻击距离自己最近的敌人,这时候就需要将身边的敌人进行距离排序,一般…

在having、select子句中使用子查询

目录 在having子句中使用子查询 统计出部门平均工资高于公司平均工资的部门编号、平均工资、部门人数 在select子句中使用子查询 查询每个员工的编号、姓名、职位、部门名称 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 在havin…

2024.2.26

1、实现信号灯集 sem.c #include<myhead.h>union semun {int val; /* Value for SETVAL */struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */unsigned short *array; /* Array for GETALL, SETALL */struct seminfo *__buf; /* Buffer …

备考2025年考研数学(一)真题练习和解析——填空题

今天距离2025年考研预计还有10个月的时间&#xff0c;看起来挺长&#xff0c;但是对于备考2025年考研的同学来说&#xff0c;必须用好每一天。为了帮助大家提升考研数学一的成绩&#xff0c;我收集整理了1987-2024年的考研数学一的真题和解析&#xff0c;并把2015-2024年十年的…

一个39岁程序员的自白,大龄程序员的出路在哪里?

一个39岁程序员的自白&#xff0c;大龄程序员的出路在哪里&#xff1f; 大龄程序员&#xff0c;最悲惨的&#xff0c;可能是但凡你发个贴&#xff0c;下面就会有类似这种人来怼你 本文来自知乎一个大龄程序员老哥&#xff08;白圣君&#xff09;的自白&#xff0c;涤生哥已经经…