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

leetcode20. 有效的括号 [简单题]

题目

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

有效字符串需满足:

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

示例 1:

输入:s = "()"
输出:true

示例 2:

输入:s = "()[]{}"
输出:true

示例 3:

输入:s = "(]"
输出:false

思路

典型的栈问题,数据结构书中都有用栈来作括号匹配的问题。

①字符串长度为奇数,直接返回false

②“( ] )”,当有这样的右括号时,也让他入栈,最后判断栈非空,则返回 false;

③“( ) { } } {”,

④“{ [ ] }”,

代码

class Solution {
public:bool isValid(string s) {int len = s.length();bool flag;if (len % 2 != 0)flag = false;stack<char> st;int i;    for (i = 0; i < len; i++) {// 遇到左括号,入栈if (s[i] == 40 || s[i] == 91 || s[i] == 123) {  st.push(s[i]);}// 遇到右括号,取栈顶元素,看是否匹配。匹配则出栈,不匹配则入栈char a;if (s[i] == 41 || s[i] == 93 || s[i] == 125) {  // 遇到右括号时,栈中无元素,则直接返回falseif (st.empty()) {flag = false;break;}if (!st.empty()) {a = st.top();}if ((a == 40 && s[i] == 41) || (a == 91 && s[i] == 93) || (a == 123 && s[i] == 125)) {st.pop();   // 匹配则出栈}else{st.push(s[i]);  // 不匹配则入栈}}}if (i != len) {return flag;}if (i == len && st.empty())flag = true;return flag;}
};

答案思路:

建立map,键为右括号,值为左括号。

unordered_map<char, char> pairs = {{')', '('},{']', '['},{'}', '{'}
};

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

相关文章:

  • ubuntu20.04下源码编译colmap
  • Jumpserver堡垒机
  • 第一百五十三回 如何实现滑动窗口
  • Oracle 12c自动化管理特性的新进展:自动备份、自动恢复和自动维护功能的优势|oracle 12c相对oralce 11g的新特性(3)
  • Redis——Jedis中hash类型使用
  • 肖sir__项目实战讲解__004
  • 数据库数据恢复-ORACLE常见故障有哪些?恢复数据的可能性高吗?
  • 合规性管理如何帮助产品团队按时交付?
  • 从平均数到排名算法
  • 如何使用ESP8266微控制器和Nextion显示器为Home Assistant展示温度传感器和互联网天气预报
  • 阻塞队列-生产者消费者模型
  • Vector Art - 矢量艺术
  • ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(一)
  • 数据结构:二叉树的基本概念
  • 利用Socks5代理IP加强跨界电商爬虫的网络安全
  • Spring学习笔记6 Bean的实例化方式
  • 大二毕设.3-网盘系统-用户模块讲解
  • (Vue2)智慧商城项目
  • Nginx实战
  • day-57 代码随想录算法训练营(19)动态规划 part 17
  • 在项目中,关于前端实现数据可视化的技术选择
  • DT 卡通材质学习 一
  • 【游戏引擎架构】6.2 资源管理器
  • spring的ThreadPoolTaskExecutor装饰器传递调用线程信息给线程池中的线程
  • 转载 - 洞察问题本质,解决工作难题
  • 关于计算机找不到d3dx9_43.dll,无法继续执行代码修复方法
  • 《从零开始的Java世界》01基本程序设计
  • 【数据开发】数据全栈知识架构,数据(平台、开发、管理、分析)
  • 基于STM32的宠物托运智能控制系统的设计(第十七届研电赛)
  • 数据结构的奇妙世界:实用算法与实际应用