NC52 有效括号序列【牛客网】

article/2025/8/27 13:06:09

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
  • 四、参考代码

零、原题链接


NC52 有效括号序列

一、题目描述

在这里插入图片描述

二、测试用例

在这里插入图片描述

三、解题思路

  1. 基本思路:
      使用栈进行括号匹配
  2. 具体思路:
    • 构建括号和数字映射,这样后面就不用写一堆 if 条件
    • 遍历括号序列,
      • 如果遇到的值大于 0 ,则表示是左括号,压入栈;
      • 如果遇到的值小于 0 ,则表示是右括号,出栈元素,
        • 如果栈空,则表示不存在左括号进行匹配;返回 false
        • 否则,判断相加是否互为相反数,是则表示括号匹配,否则,不匹配,返回 false
    • 判读栈是否为空,为空则表示全部匹配,如果不为空,则表示左括号多了;

四、参考代码

时间复杂度: O ( n ) \Omicron(n) O(n)
空间复杂度: O ( n ) \Omicron(n) O(n)

#include <unordered_map>
#include <vector>
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param s string字符串* @return bool布尔型*/bool isValid(string s) {vector<char> _stack(s.length());unordered_map<char, int> m = {{'(', 1}, {'{', 2}, {'[', 3}, {')', -1}, {'}', -2}, {']', -3}};int k = 0;for (int i = 0; i < s.length(); i++) {if (m[s[i]] > 0)_stack[k++] = s[i];else {if (k == 0)return false;if (m[_stack[k - 1]] == -m[s[i]])k--;elsereturn false;}}return k == 0;}
};

http://www.hkcw.cn/article/OXqnWhccgg.shtml

相关文章

Sqlalchemy 连mssql坑

连接失败: (pyodbc.OperationalError) (08001, [08001] [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:0A00014D:SSL routines::legacy sigalg disallowed or unsupported] (-1) (SQLDriverConnect)) (Background on this error at: https://sqlalche.me/e/…

乾元通渠道商中标青海省自然灾害应急能力提升工程基层防灾项目

近日&#xff0c;乾元通渠道商中标青海省自然灾害应急能力提升工程基层防灾项目&#xff0c;乾元通作为设备厂家&#xff0c;为项目提供通信指挥类装备&#xff08;多链路聚合设备&#xff09;QYT-X1。 青岛乾元通数码科技有限公司作为国家应急产业企业&#xff0c;深耕于数据调…

记一次edu未授权访问漏洞

首先进入该网址是一个登录界面&#xff0c;查看源代码&#xff0c;找到js文件&#xff0c;发现存在js.map前端信息泄露&#xff0c;于是我们进行js还原。 得到前端的一些源代码&#xff0c;以及路由API等&#xff0c;我们就可以通过这个源代码&#xff0c;进行目录遍历&#xf…

Python----目标检测(《用于精确目标检测和语义分割的丰富特征层次结构》和R-CNN)

一、《用于精确目标检测和语义分割的丰富特征层次结构》 1.1、基本信息 原文标题&#xff1a;Rich feature hierarchies for accurate object detection and semantic segmentation 中文译名&#xff1a;用于精确目标检测与语义分割的丰富特征层次结构 版本&#xff1a;第5版技…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Split Landing Page(拆分展示页)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— SplitLandingPage 组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 在这篇文章中&#xff0c;我们将实现一个交互式的左右面板…

Dif-Fusion:第一个基于扩散模型实现的红外光与可见光图像融合的论文

1. 论文介绍 论文主要创新点&#xff1a;提出了第一个基于扩散模型 (Diffusion) 实现的红外光与可见光图像融合模型&#xff0c;但模型不止简单的依赖于 Diffusion&#xff0c;而是一个新颖的 two-stage 的图像融合模型。 Dif-Fusion 利用扩散模型的生成能力&#xff0c;直接在…

Java开发经验——阿里巴巴编码规范实践解析5

摘要 这篇文章主要介绍了阿里巴巴Java开发规范中关于安全和性能优化的实践解析。内容涵盖了配置文件密码加密、用户输入内容风控、SQL注入防护、参数有效性验证、XSS攻击防护、CSRF安全验证、文件上传安全检查、防重放机制等多个方面&#xff0c;通过正反示例和推荐做法&#…

如何在python3.8环境中安装pytorch

我的conda配置了两个独立环境&#xff1a; base环境 - 安装有Python 3.12及各类依赖包&#xff1b;pytorch环境 - 基于Python 3.8创建&#xff0c;包含特定功能包。 在Anaconda Prompt中激活您的PyTorch环境&#xff1a; 访问PyTorch官网历史版本页面&#xff08;https://pyt…

源的企业级网络安全检测工具Prism X(棱镜X)

Prism X&#xff08;棱镜X&#xff09;是由yqcs团队自主研发的开源网络安全检测解决方案&#xff0c;专注于企业级风险自动化识别与漏洞智能探测。该工具采用轻量化架构与跨平台设计&#xff0c;全面兼容Windows、Linux及macOS操作系统&#xff0c;集成资产发现、指纹鉴别、弱口…

ADB识别手机系统弹授权框包含某段文字-并自动点击确定按钮

ADB识别手机系统弹授权框包含某段文字-并自动点击确定按钮 --蓝牙电话App自动部署 上一篇&#xff1a;手机打电话时将对方DTMF数字转为RFC2833发给局域网SIP坐席 下一篇&#xff1a;编写中。 一、前言 蓝牙电话方案中&#xff0c;我们提供了将手机通话的语音拦截后转发到局域…

kafka 常用知识点

文章目录 前言kafka 常用知识点1. kafka 概念2. 消息共享和广播3. 分区和副本数量奇偶数 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0…

什么是接口测试,我们如何实现接口测试?

1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型&#xff0c;测试类型又主要…

我这三年……测试开发工作的一点感悟

从职场小白到测试开发&#xff0c;已经三年有余。回首这段职业旅程&#xff0c;踩过坑&#xff0c;吃过饼&#xff0c;背过锅&#xff0c;也拿过奖。和产品互掐&#xff0c;和开发干仗……也许这就是成长的代价和难忘的经历吧。今天忍不住跟宝子们分享分享我的这段心路历程 初…

[HIT计算机系统大作业] 程序人生-Hello‘s P2P

2025年5月 摘 要 本文以Hello程序为研究载体&#xff0c;系统探究其从源代码到可执行文件再到进程生命周期的完整流程&#xff0c;深度解析计算机系统多层面协同机制。首先阐述预处理、编译、汇编及动态链接的核心步骤&#xff1a;通过gcc工具链生成hello.i&#xff08;预处…

HIT-ICS 2025春计算机系统大作业 程序人生-Hello’s P2P

摘 要 本报告通过分析hello程序从hello.c源代码到进程终止的完整生命周期,系统阐述了计算机系统的多层次协作机制。首先,通过预处理、编译、汇编与链接阶段,将C语言源代码转换为可执行文件;其次,结合进程管理、存储管理及输入输出管理,深入探讨了进程创建、地址空间转换…

Hello的程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 未来技术模块 学   号 2023111680 班   级 23WLR14 学 生 姜虹伯 指 导 教 师 吴锐   计算机…

程序人生hello.c

计算机科学与技术学院 2024年5月 摘 要 本文系统分析了HELLO程序从源代码到执行的完整生命周期&#xff0c;揭示了编译系统与操作系统协同工作的底层机制。研究以Ubuntu环境和GCC工具链为基础&#xff0c;覆盖预处理、编译、汇编、链接四大阶段&#xff1a;预处理阶段展开宏…

哈尔滨工业大学HIT-ICS2024大作业-程序人生-Hello‘s P2P

第1章 概述 1.1 Hello简介 ①P2P&#xff1a;这一过程是指 Hello如何从C源文件经过预处理转变为可执行文件&#xff0c;这一过程共需经历四个阶段&#xff1a; 1&#xff09;预处理器处理&#xff0c;生成文本文件hello.i 2&#xff09;编译器处理&#xff0c;生成汇编程序…

开源项目的认识理解

目录 开源项目有哪些机遇与挑战&#xff1f; 1.开源项目的发展趋势 2.开源的经验分享&#xff08;向大佬请教与上网查询&#xff09; 3.开源项目的挑战 开源项目有哪些机遇与挑战&#xff1f; 1.开源项目的发展趋势 1. 持续增长与普及 - 开源项目将继续增长&#xff0c…

HIT-CSAPP大作业-程序人生

摘 要 本文概述了hello.c源文件从预处理、编译、汇编、链接到最终执行的关键步骤&#xff0c;阐述了程序在操作系统中的加载与运行过程。同时&#xff0c;通过对hello程序在进程管理、存储结构和输入输出控制方面的介绍&#xff0c;帮助读者对程序的整个生命周期有了基础认识…