[Leetcode] 0020. 有效的括号

news/2024/9/8 3:46:14/

20. 有效的括号

点击上方,跳转至leetcode

题目描述

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

有效字符串需满足:

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

示例 1:

输入:s = "()"
输出:true

示例 2:

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

示例 3:

输入:s = "(]"
输出:false

提示:

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

解法

方法一:栈

遍历括号字符串 \(s\),遇到左括号时,压入当前的左括号;遇到右括号时,弹出栈顶元素(若栈为空,直接返回 false),判断是否匹配,若不匹配,直接返回 false

也可以选择遇到左括号时,将右括号压入栈中;遇到右括号时,弹出栈顶元素(若栈为空,直接返回 false),判断是否是相等。若不匹配,直接返回 false

两者的区别仅限于括号转换时机,一个是在入栈时,一个是在出栈时。

遍历结束,若栈为空,说明括号字符串有效,返回 true;否则,返回 false

时间复杂度 \(O(n)\),空间复杂度 \(O(n)\)。其中 \(n\) 为括号字符串 \(s\) 的长度。

Python3

class Solution:def isValid(self, s: str) -> bool:if len(s) % 2 == 1:return Falsepairs = {")": "(","]": "[","}": "{",}stack = list()for ch in s:if ch in pairs:if not stack or stack[-1] != pairs[ch]:return Falsestack.pop()else:stack.append(ch)return not stack

C++

class Solution {
public:bool isValid(string s) {int n = s.size();if (n % 2 == 1) {return false;}unordered_map<char, char> pairs = {{')', '('},{']', '['},{'}', '{'}};stack<char> stk;for (char ch: s) {if (pairs.count(ch)) {if (stk.empty() || stk.top() != pairs[ch]) {return false;}stk.pop();}else {stk.push(ch);}}return stk.empty();}
};

http://www.ppmy.cn/news/514081.html

相关文章

English Learning - L3 Lesson7 TED Living Beyond Limits 上 译文

LIVING BEYOND LIMITS Amy Purdy If your life were a book and you were the author, how would you want your story to go? That’s the question that changed my life forever. 如果你的人生是一本书&#xff0c;你是书的作者&#xff0c;你会怎么写你的故事&#xff1f…

了解旋转轴密封的功能

旋转轴密封件通过防止流体和污染物沿旋转轴泄漏&#xff0c;在各种机械系统中起着至关重要的作用。在本文中&#xff0c;我们将深入探讨旋转轴密封件的用途和功能&#xff0c;突出其重要性并清楚地了解它们在不同应用中的作用。 旋转轴封的功能&#xff1a; 旋转轴封&#xf…

DELL戴尔开启/关闭触摸板方法

进入设置中心 搜索触摸板 开启触摸板

linux 指纹

linux 指纹 libgusb g_thread_new NIST Biometric Image Software (NBIS) https://www.nist.gov/services-resources/software/nist-biometric-image-software-nbis NIGOS - NIST Biometric Open Source Server https://www.nist.gov/itl/iad/image-group/products-and-serv…

计算机指纹驱动程序,解决Windows 7系统本本指纹识别器问题

来源: IT168 作者: 李祥敬 2010-01-06/15:05 让本友一族感到惊喜的是,Windows7系统内置了指纹软件。按照正常的情况,装上了Windows7的笔记本电脑就可以顺利使用指纹识别功能替代开机时候输入密码了。但是当装上Windows7正式版后却发现开始注册指纹信息的时候就立即出错,该…

如何用oracle 数据库 19c 解锁scott用户

** 在oracl数据库里面 的示例用户scott 在oracl数据库11之后就找不到了&#xff1f;&#xff1f; 注意我们在操作的时候登录sql plus 我们用的都是超级管理员登录 sys as sysdba; ** 原因是因为 oracle 数据库 11 之后的数据库把 用户分为了两个数据库 一个是CDB&#xff08;…

戴尔台式机安装win 7系统

使用相应品牌电脑进入BIOS的快捷键&#xff0c;进入BIOS设置 1、BIOS引导】&#xff1a; 传统的电脑通常都是使用BIOS引导&#xff0c;开机BIOS初始化&#xff0c;然后BIOS自检&#xff0c;再引导操作系统→进入系统&#xff0c;显示桌面。 &#xff08;选择Setup是进入BIOS&…

ubuntu 指纹

ubuntu fprintd 指纹 https://fprint.freedesktop.org/supported-devices.html fprintd-enroll ackjack-virtual-machine:~$ sudo fprintd-enroll Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available Supported devices a…

分分钟开启Windows 7内置指纹识别功能

安全防护性能的加强是在Windows 7相对于以前版本最大的改进之一。其中的Windows Biometric Framework&#xff08;生物计量框架&#xff09;使得Windows 7的生物计量特性变得更加可靠&#xff0c;兼容性更高&#xff0c;特别是在指纹识别这一方面。 很多感应元件的生产商已经与…

oracle 19c 解锁scott用户

Windows平台上&#xff0c;Oracle19c软件完成安装和建库之后&#xff0c;在学习《Oracle SQL高级编程》的过程中&#xff0c;发现没有scott用户&#xff0c;需要额外动手创建部署。 scott用户需要利用$ORACLE_HOME\rdbms\admin\scott.sql脚本来创建。 /1.我们用超级管理员打开…

HBase为什么查询快

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 可回答&#xff1a;1&#xff09;HBase为什么读快&#xff1b;2&#xff09;HBase是根据rowkey查询&#xff0c;当数据量相当大的时候&#xff0c;是…

ADC(模数转换)详解

ADC&#xff08;模数转换&#xff09;详解 前言ADC的定义ADC简介ADC特性ADC时钟工作模式单通道单次转换练习多通道扫描模式单次转换 前言 在STM32微控制器中&#xff0c;ADC代表模数转换器&#xff08;Analog-to-Digital Converter&#xff09;。ADC是一种用于将模拟信号转换为…

PC市场:寒冬敲响警钟,蓄势待发的复兴之路

近年来&#xff0c;PC市场的增长确实放缓&#xff0c;但这并不意味着它已经进入了寒冬。相反&#xff0c;PC市场正在蓄势待发&#xff0c;寻找复兴之路。 首先&#xff0c;PC市场仍然是一个巨大的市场。尽管移动设备的普及使得一些用户更多地使用手机和平板电脑&#xff0c;但…

第十章 ShuffleNetv2网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

2023最新高薪岗位大爆料,大模型算法工程师!凭什么人均月薪50K

大模型算法工程师工资收入一般多少钱一个月&#xff1f; 最多人拿50K以上占 53.7%&#xff0c;2023年较2022年增长了10%。 按学历统计&#xff0c;本科工资&#xffe5;41.9K。 按经验&#xff0c;1-3年工资&#xffe5;40.0K。 一起来看华为招聘的大模型工程师的工资水准 岗位…

射频接地

对于射频电路&#xff0c;其信号的路径阻抗已匹配到50欧姆为最佳&#xff08;大多数情况&#xff09;&#xff0c;即实现匹配&#xff0c;因此在所经过的路径上&#xff0c;接地是一个重要因素&#xff0c;通常采用在信号线的两侧对称加上接地孔&#xff0c;接地孔的孔径为直径…

计算机保护地阻值,机房接地系统的一般接地电阻要小于多少欧姆?

机房接地系统宜采用综合接地方案&#xff0c;综合接地电阻应小于1欧姆。 机房接地系统&#xff1a; (1)机房有四种接地方式&#xff1a;交流工作地、安全保护地、直流工作地和防雷保护地。 (2)信号系统和电源系统、高压系统和低压系统不应使用共地回路。 (3)灵敏电路的接地应各…

单点接地、多点接地的应用

Q&#xff1a;什么是地线&#xff1f; A&#xff1a;地线有安全地和信号地两种。安全地是为了保证人身安全、设备安全而设的地线&#xff1b;信号地是为了保证电路正确工作所设的地线。造成电路干扰现象主要是因为信号地引起的。信号地的一般定义为&#xff1a;电路的电位参考…

matlab单相接地仿真模型,小电流接地系统单相故障在Matlab中的仿真分析

短路故障是电力系统发生故障的主要原因,通常采用小电流接地的方式来应对线路过电压现象。利用Matlab/simulink仿真平台构建小电流接地系统进行建模与仿真,能直观形象地显示出小电流接地系统特点、优越性以及故障特征。通过零序电流法可快速找出故障线路,并通过三相电流或三相电…

怎样用万用表检查线路是短路还是接地?

如果你想检查电路是否短路。首先&#xff0c;切断线路电源&#xff0c;然后拔下每个负载开关&#xff0c;用万用表的欧姆阻隔两根导线之间的电阻。在正常情况下&#xff0c;阻力越大越好。如果判断电路是否接地&#xff0c;可以使用万用表的欧姆档。测量每条线路对地的电阻。越…