题目描述

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

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

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

输入: "{[]}"
输出: true

解题思路

利用栈的思想,对于左括号直接入栈,对于右括号,判断栈顶元素是否为对应的左括号,若不是则返回false,是则出栈继续遍历下一个括号

代码

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

最新文章

  1. OAF通过Iterator标准遍历各行
  2. I/O复用
  3. java 19 -14 File类的判断并输出案例
  4. 移动端的touch事件处理
  5. Graphical installers are not supported by the vm
  6. javascript进阶——分离式DOM脚本编程
  7. [iOS开发]TextKit之动态改变样式
  8. (一)AngularJS获取贴纸Hello World
  9. Chapter 5 Blood Type——7
  10. java 堆 栈 方法区的简单分析
  11. HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal
  12. node mongodb 案例代码
  13. js便签笔记(1)——说说HTMLCollection、NodeList以及NamedNodeMap
  14. python学习手册中的一些易忘的点(前三部分)
  15. VS Code配置初探
  16. Python概念-反射之文化底蕴版:反正射了
  17. 乐视mysql面试题【转】
  18. WF从入门到精通学习目录
  19. Python爬虫之XML
  20. Eclipse Java SE升级Java EE

热门文章

  1. 安装笔记, caffe 、 opencv等
  2. vue学习(8)-过渡transition&amp;动画animate
  3. 安卓开发之ArrayAdapter使用
  4. SAP成都研究院李三郎:SCP Application Router简介
  5. 【坑】Mybatis原始获取配置方式,获取配置失败
  6. com.android.ddmlib.adbcommandrejectedexception:未经授权的设备。
  7. 十九:mvc强类型声明
  8. C++STL库常用函数用法
  9. mysql存储json
  10. opengles reference card