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

算法与数据结构(括号匹配问题)

思路

从题干可以看出,只要给出的括号对应关系正确,那么就可以返回true,否则返回false。这个题可以使用栈来解决

解题过程

首先从第一个字符开始遍历,如果是括号的左边(‘(‘,’[‘,’}‘),则直接将该字符压栈

如果是括号的右边: 首先判断栈是否为空,如果为空,则直接返回false

如果栈不为空,则可以与栈的顶部数据进行比较,若左右括号对应(’()‘,’[]‘,’{}‘),说明这个括号对应关系正确,然后直接使用stack.pop()出栈 遍历完s中的所有数据之后,若栈为空,说明所有括号的对应关系都正确,直接返回true,否则返回false

以示例2作为例子:

代码

class Solution {
public:bool isValid(string s) {stack <char> stack;for(int i=0;i<s.length();i++){char c = s[i];if(c == '(' || c == '[' || c == '{')stack.push(c);else if(c == ')'){if(stack.empty() || stack.top()!='('){return false;}else {stack.pop();}  }else if(c == ']'){if(stack.empty() || stack.top()!='['){return false;}else {stack.pop();}}else if(c == '}'){if(stack.empty() || stack.top()!='{'){return false;}else {stack.pop();}}}return stack.empty();}
};

http://www.lryc.cn/news/532185.html

相关文章:

  • 订单状态监控实战:基于 SQL 的状态机分析与异常检测
  • C# 中记录(Record)详解
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-autobackend.py
  • Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)
  • Rust 变量特性:不可变、和常量的区别、 Shadowing
  • NFT Insider #167:Champions Tactics 角色加入 The Sandbox;AI 助力 Ronin 游戏生态
  • 鹧鸪云无人机光伏运维解决方案
  • NeuralCF 模型:神经网络协同过滤模型
  • 【前端】【Ts】【知识点总结】TypeScript知识总结
  • JAVA架构师进阶之路
  • 掌握@PostConstruct与@PreDestroy,优化Spring Bean的初始化和销毁
  • Java设计模式:行为型模式→状态模式
  • 景联文科技:专业数据采集标注公司 ,助力企业提升算法精度!
  • ES面试题
  • LabVIEW2025中文版软件安装包、工具包、安装教程下载
  • 算法与数据结构(合并K个升序链表)
  • 洛谷 P4552 [Poetize6] IncDec Sequence C语言
  • 保姆级教程Docker部署Zookeeper官方镜像
  • javaEE-6.网络原理-http
  • 【戒抖音系列】短视频戒除-1-对推荐算法进行干扰
  • 9.建造者模式 (Builder Pattern)
  • OpenCV:特征检测总结
  • Clion开发STM32时使用stlink下载程序与Debug调试
  • 电脑开机键一闪一闪打不开
  • 深度学习 Pytorch 基础网络手动搭建与快速实现
  • Sqli-labs靶场实录(一):Basic Challenges
  • 2024最新版Node.js详细安装教程(含npm配置淘宝最新镜像地址)
  • RK3568使用QT搭建TCP服务器和客户端
  • Android学习20 -- 手搓App2(Gradle)
  • LeetCode - Google 大模型10题 第2天 Position Embedding(位置编码) 3题