牛客题霸 [括号序列] C++题解/答案

题目描述

给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。

题解:

用栈来做
用栈来存每个符号的左边,当出现符号右边时,看栈的顶部是否为该符号的左边,如果不能匹配则返回0,能匹配则将栈顶pop
全部结束时栈应该是空的,否则返回0
注意:题目给的数据有可能会先输入符号的右部分,所以当栈为空时也应该压入字符

if(s[i]=='('||s[i]=='{'||s[i]=='['||q.empty())

没有这个q.empty()会导致段错误

代码:

class Solution {public:/*** * @param s string字符串 * @return bool布尔型*/bool isValid(string s) {// write code herestack<char>q;for(int i=0;i<s.length();i++){if(s[i]=='('||s[i]=='{'||s[i]=='['||q.empty()){q.push(s[i]);continue;}if(s[i]==')'&&q.top()!='(')return false;else if(s[i]=='}'&&q.top()!='{')return false;else if(s[i]==']'&&q.top()!='[')return false;else if(q.empty())return false;q.pop();}if(q.empty())return true;else return false;}
};

牛客题霸 [括号序列] C++题解/答案相关推荐

  1. 牛客题霸 [括号生成] C++题解/答案

    牛客题霸 [括号生成] C++题解/答案 题意: 给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合. 例如,给出n=3,解集为: "((()))", "( ...

  2. 牛客题霸 [比较版本号] C++题解/答案

    牛客题霸 [比较版本号] C++题解/答案 题目描述 如果version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0. 输入的ver ...

  3. 牛客题霸 [ 寻找峰值] C++题解/答案

    牛客题霸 [ 寻找峰值] C++题解/答案 题目描述 山峰元素是指其值大于或等于左右相邻值的元素.给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰.找到索引最大的那个山峰元素并 ...

  4. 牛客题霸 [ 大数乘法] C++题解/答案

    牛客题霸 [ 大数乘法] C++题解/答案 题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回. (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符 ...

  5. 牛客题霸 [ 孩子们的游戏] C++题解/答案

    牛客题霸 [ 孩子们的游戏] C++题解/答案 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样 ...

  6. 牛客题霸 [矩阵乘法] C++题解/答案

    牛客题霸 [矩阵乘法] C++题解/答案 题目描述 给定两个nn的矩阵A和B,求AB. 题解: 都学过矩阵相乘把,[i][k]=[i][j]*[j][k] 代码: class Solution {pu ...

  7. 牛客题霸 [顺时针旋转矩阵] C++题解/答案

    牛客题霸 [顺时针旋转矩阵] C++题解/答案 题目描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于 ...

  8. 牛客题霸 [丑数] C++题解/答案

    牛客题霸 [丑数] C++题解/答案 题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求 ...

  9. 牛客题霸 [矩阵查找] C++题解/答案

    牛客题霸 [矩阵查找] C++题解/答案 题目描述 请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 每一行的数字都从左到右排序 每一行的第一个数字都比上一行最后一个数字大 ...

最新文章

  1. 大众点评数据平台架构变迁
  2. 搞透Kafka的存储架构,看这篇就够了
  3. Javascript 基础-------this关键字
  4. sphinx 源码阅读之分词,压缩索引,倒排——单词对应的文档ID列表本质和lucene无异 也是外部排序再压缩 解压的时候需要全部扫描doc_ids列表偏移量相加获得最终的文档ID...
  5. python如何做一个数据库_Python创建一个新的Django项目(连接到MySQL数据库),python,新建,mysql...
  6. 软件工程个人作业(2)
  7. 经典C语言程序100例之五二
  8. python 判断等于0_Python 条件语句介绍
  9. 基于mysql数据库的应用_MySQL数据库应用
  10. python用pip安装pillow_cent 6.5使用pip安装pillow总是失败
  11. 【DSP开发】HyperLink 编程和性能考量
  12. C++设计模式之Proxy模式(代理模式)
  13. 华硕aura完全卸载_更快,更信仰,华硕RTX 2070电竞显卡
  14. 基于VUE的酒店管理系统的设计与实现
  15. 第一章 空间解析几何与向量代数(1)
  16. 服务器正在运行由于另一个程序,关于 服务器正在运行中,由于另一个程序正在运行中,此操作没法完成 问题的解决...
  17. Nginx正则表达式与location匹配简介
  18. JAVA 车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。
  19. Arduino学习笔记(5)-- 步进电机转速和方向控制
  20. 二级倒立摆的matlab模拟,输出倒立摆运动过程角度变化

热门文章

  1. 如果生活中没有数学,那么。。。
  2. mysql集群从节点无法启动_一次galera cluster集群故障节点无法启动问题排查
  3. keras 自定义层input_从4个方面介绍Keras和Pytorch,并给你选择其中一个学习库的理由...
  4. php 单例模式的类,用单例模式来设计一个PHP数据库类
  5. 初级Java开发工程师!绝密文档,面试手册全面突击!!!秋招已经到来
  6. tcl mysql_MySQL·TCL语言
  7. 通达信版弘历软件指标_通达信软件指标编写基础教程,10个指标源码祝你股市一帆风顺...
  8. linux编程两个子进程,Linux中fork同时创建多个子进程的方法
  9. python socket自动重连_详解python3中socket套接字的编码问题解决
  10. quicktype游戏java程序_使用QuickType工具从json自动生成类型声明代码