LeetCode OJ-20.Valid Parentheses
来源:互联网 发布:火爆网络的ann是谁 编辑:程序博客网 时间:2024/05/23 23:20
LeetCode OJ-20.Valid Parentheses
题目描述
Given a string containing just the characters
'('
,')'
,'{'
,'}'
,'['
and']'
, determine if the input string is valid.The brackets must close in the correct order,
"()"
and"()[]{}"
are all valid but"(]"
and"([)]"
are not.Subscribe to see which companies asked this question.
题目理解
一个括号匹配的问题,字符串中仅含需要匹配的几种括号,用栈匹配就好了,在遍历字符串过程中,出现不匹配则将返回值res赋值为false,并退出循环,最后的判断条件应是,栈为空,因为匹配时,会将栈中左半边的括号做pop操作。具体代码在下方,包含一些处理的细节。
Code
class Solution {public: bool isValid(string s) { bool res = true; std::stack<char> syms; int len = (int) s.length(); int i; res = (len % 2) == 0 ? true : false; // 若字符串中括号匹配,则应满足长度为偶数 for (i = 0; i < len && res; ++i) { switch (s[i]) { case '(': syms.push(s[i]); break; case '[': syms.push(s[i]); break; case '{': syms.push(s[i]); break; case ')': if (syms.empty() || syms.top() != '(') { // 需要先做判断,符号栈是否为空,对空栈做top是错误行为 res = false; } else { syms.pop(); } break; case ']': if (syms.empty() || syms.top() != '[') { res = false; } else { syms.pop(); } break; case '}': if (syms.empty() || syms.top() != '{') { res = false; } else { syms.pop(); } break; default: break; } } if (syms.empty() != true) { // 若括号能匹配,则最后符号栈应该为空 res = false; } return res; }};
0 0
- <LeetCode OJ> 20. Valid Parentheses
- LeetCode OJ-20.Valid Parentheses
- 【LeetCode OJ】Valid Parentheses
- LeetCode OJ:Valid Parentheses
- LeetCode OJ - Valid Parentheses
- LeetCode OJ Valid Parentheses
- [LeetCode OJ]Valid Parentheses
- LeetCode OJ:Longest Valid Parentheses
- LeetCode OJ - Longest Valid Parentheses
- LeetCode OJ Longest Valid Parentheses
- 【LeetCode OJ 20】Valid Parentheses
- LeetCode OJ-20-Valid Parentheses
- LeetCode 20. Valid Parentheses
- [LeetCode] 20.Valid Parentheses
- LeetCode --- 20. Valid Parentheses
- LeetCode 20.Valid Parentheses
- [Leetcode] 20. Valid Parentheses
- 【leetcode】20. Valid Parentheses
- html5新增标签(上)
- 修改 myeclipse10中web-content-root经验
- mysql 去掉重复的有效操作,在对数据库做操作时请切记要做数据备份
- Adobe Photoshop CC Mac简体中文 硬解
- 并发的实质
- LeetCode OJ-20.Valid Parentheses
- KVO,NSNotification,delegate及block区别
- 小白学习Rxjava2,从零开始到实战(一) RxJava2的基础使用
- Android-edittext-XML属性
- How to contribute the code or doc to Nifi?
- 基于注解的Spring MVC控制器
- -bash: ./startup.sh: Permission denied解决
- JavaScript中的查询标识符
- Linux用户管理相关指令