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

力扣20:有效的括号

力扣20:有效的括号

  • 题目
  • 思路
  • 代码

题目

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

有效字符串需满足:

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

思路

有效的括号字符串一定是先几个左括号然后按照相反的顺序再添加几个右括号,所以最先出现的左括号反而是最后出去的。也就是先进后出机制这不就很容易想到我们的栈了吗。想到用什么数据结构了这道题的代码就很简单了。只需要进行判断即可。

代码

class Solution {
public:bool isValid(string s) {stack<char> st;for(auto& ch : s){if(ch == '(' || ch == '[' || ch == '{'){st.push(ch);}else if (!st.empty() && ch == ')' && st.top() == '('){st.pop();}else if(!st.empty() && ch == ']' && st.top() == '['){st.pop();}else if(!st.empty() && ch == '}' && st.top() == '{'){st.pop();}else{return false;}}if(st.empty()){return true;}return false;}
};
http://www.lryc.cn/news/598777.html

相关文章:

  • VirtualBox安装Ubuntu 22.04后终端无法打开的解决方案
  • 在 Ubuntu 20.04 上轻松安装和使用中文输入法
  • 离线进行apt安装的过程(在只能本地传输的ubuntu主机上使用apt安装)
  • 秋叶sd-webui频繁出现生成后无反应的问题
  • 11-day08文本匹配
  • 0724 双向链表
  • Unity 进行 3D 游戏开发如何入门
  • iOS网络之异步加载
  • 医疗设备自动化升级:Modbus TCP与DeviceNet的协议协同实践
  • vue3使用异步加载腾讯地图
  • 低速信号设计之 JTAG 篇
  • Spring Bean生命周期七步曲:定义、实例化、初始化、使用、销毁
  • Datawhale AI夏令营学习笔记:大模型微调与数据处理实践
  • 01_FOC学习之先让电机转动起来
  • 长糖链皂苷的生物合成研究进展-文献精读149
  • FreeRTOS—计数型信号量
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(3)
  • 【自动化运维神器Ansible】Ansible常用模块之shell模块详解
  • 深入解析Hadoop NameNode的Full GC问题、堆外内存泄漏及元数据分治策略
  • Lua(数组)
  • DBA常用数据库查询语句(2)
  • 详解FreeRTOS开发过程(六)-- 队列
  • Redis操作
  • PostgreSQL 跨库查询方法
  • CMake ARGV变量使用指南
  • 基于C语言的Zynq SOC FPGA嵌入式裸机设计和开发教程
  • 外企本土化布局对国内连接器企业影响几何?
  • 模型的存储、加载和部署
  • rust-切片类型
  • centos7中把nginx更新到1.26 版(centos7默认只能更新到1.20)