当前位置: 首页 > 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;}
};
http://www.xdnf.cn/news/717949.html

相关文章:

  • YOLO12改进-模块-引入AFE模块 增强模型对复杂场景(如杂乱背景、小目标、半透明物体)的特征提取能力
  • Siemens西门子罗宾康系列特价型号A5E31386448
  • 费用报销管理全解析:从表单设计到入账归档的标准化流程指南
  • 涂鸦智能的TuyaOpen框架入门指南:智能插座实战
  • 信号与系统速成-1.绪论
  • 4.1.2 操作数据集
  • 【Windows】【openEuler】ntpd提供时间源供windows系统同步时间
  • VMware ESXi网络配置
  • 不规则瀑布流布局拖拽重排序
  • Windows【基础操作1】
  • 学习路之PHP--easyswoole简易增删改查入门
  • Java基础 Day24
  • 字节流操作:InputStream类 读取文件的操作(三种 read 方法)
  • 解构产品经理
  • 深入剖析网络协议:七层协议与四层协议详解
  • 在容器里运行go程序报错:/bin/sh: ./manager: not found
  • 基于照片环境信息的AI定位技术:从原理到实战的深度解析
  • KEYSIGHT N9320B是德科技N9320B频谱分析仪
  • AVL树c++实现
  • 基于51单片机和8X8点阵屏、独立按键的射击消除类小游戏
  • matlab雷达定位仿真
  • 【请关注】关于VC++实现使用Redis不同方法,有效达到 Redis 性能优化、防击穿
  • 使用 pytesseract 构建一个简单 OCR demo
  • PostgreSQL安装
  • 【 Samba】Windows 用户访问Docker服务器上当前A用户的 ~/aaa目录
  • Kotlin中的::操作符详解
  • Android 之 kotlin 语言学习笔记二(编码标准)
  • 【DeepSeek 部署中的常见问题及解决方案】
  • [解决]在 Vue 3 使用 Vite 开发的项目中,放在 public 文件夹里的文件,在打包部署后出现 404 的问题
  • python学习打卡day39