LeetCode 20. 有效的括号(Valid Parentheses )
2024-10-06 19:51:21
题目描述
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 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;
}
};
最新文章
- OAF通过Iterator标准遍历各行
- I/O复用
- java 19 -14 File类的判断并输出案例
- 移动端的touch事件处理
- Graphical installers are not supported by the vm
- javascript进阶——分离式DOM脚本编程
- [iOS开发]TextKit之动态改变样式
- (一)AngularJS获取贴纸Hello World
- Chapter 5 Blood Type——7
- java 堆 栈 方法区的简单分析
- HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal
- node mongodb 案例代码
- js便签笔记(1)——说说HTMLCollection、NodeList以及NamedNodeMap
- python学习手册中的一些易忘的点(前三部分)
- VS Code配置初探
- Python概念-反射之文化底蕴版:反正射了
- 乐视mysql面试题【转】
- WF从入门到精通学习目录
- Python爬虫之XML
- Eclipse Java SE升级Java EE
热门文章
- 安装笔记, caffe 、 opencv等
- vue学习(8)-过渡transition&;动画animate
- 安卓开发之ArrayAdapter使用
- SAP成都研究院李三郎:SCP Application Router简介
- 【坑】Mybatis原始获取配置方式,获取配置失败
- com.android.ddmlib.adbcommandrejectedexception:未经授权的设备。
- 十九:mvc强类型声明
- C++STL库常用函数用法
- mysql存储json
- opengles reference card