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

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

文章目录

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

零、原题链接


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;}
};

相关文章:

  • [9-2] USART串口外设 江协科技学习笔记(9个知识点)
  • 每日算法-250529
  • 车载摄像头选型相关
  • 自定义异常小练习
  • QSS 使用方式介绍
  • cf2067A
  • 一个开源脚本,可自动安装在 AMD Radeon 7900XTX 上运行选定 AI 接口所需的所有内容
  • 大数据治理体系构建与实践路径
  • 文科小白学习Linux系统之安全管理
  • Debian:自由操作系统的精神图腾与技术基石
  • 12:遨博机器人开发
  • K6 是什么
  • 变量的计算
  • 25 字符数组与字符串及多维数组详解:定义与初始化、访问与遍历、%s 格式符、内存剖析、编程实战
  • 2025.5.26【ZR NOI模拟赛 T2】草莓函数 题解(性质,二分图最大权匹配)
  • (NAT64)IPv6网络用户访问IPv4网络服务器(动态映射方式)
  • 微内核与宏内核有什么区别(GAI)
  • Java -- 并发编程
  • 项目管理进阶:精读78页 IPD+CMMI+Scrum一体化研发管理解决方案【附全文阅读】
  • matlab雷达定位仿真
  • 免费的app软件下载网站/搜索引擎推广的常见形式有
  • cad培训班一般学费多少/seo推广哪家好
  • 品牌公关具体要做些什么/如何优化标题关键词
  • 用dreamriver做html网站/关键词seo是什么
  • 武汉常阳新力建设工程有限公司网站/公司产品推广文案
  • 不让网站开发公司进入后台/中国十大电商培训机构