leetcode-20-Valid Parentheses
2016-05-04 19:56
531 查看
题意:判断三种括号出现的次序是否正确。
比如:([{}]),{}[] ,()都为true。{[}]为false。
直接用栈。遍历一遍遇到左边的括号入栈,在栈不为空的情况下遇到第一个右边的括号时候判断栈顶元素是否对应。
cpp:
比如:([{}]),{}[] ,()都为true。{[}]为false。
直接用栈。遍历一遍遇到左边的括号入栈,在栈不为空的情况下遇到第一个右边的括号时候判断栈顶元素是否对应。
class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ stack=[] map={")":"(","]":"[","}":"{"} for i in s: if i in "({[": stack.append(i) else: if not stack or stack.pop()!=map[i]: return False return not stack
cpp:
class Solution { public: bool isValid(string s) { stack<char> stk; int len = s.length(); for (int i = 0; i < len; i++) { if (s[i] == '(' || s[i] == '[' || s[i] == '{') { stk.push(s[i]); } else { if (stk.empty()) return false; if (stk.top() == '(' && s[i] == ')') stk.pop(); else if (stk.top() == '[' && s[i] == ']') stk.pop(); else if (stk.top() == '{' && s[i] == '}') stk.pop(); else return false; } } return stk.empty(); } };
相关文章推荐
- 14.合并两个排序的链表
- [dhtmlxGant(甘特图)开发手册]第一篇——如何使用dhtmlxGantt
- JS无提示关闭浏览器窗口脚本以及不同浏览器对window.close()不同表现
- MD5的简单学习,钥匙串
- HDU 1395 2^x mod n = 1(快速幂取模)
- Trie(字典树)的学习
- SpringMVC简单配置--HelloWorld例子
- Eclipse常用快捷键
- 二叉树后序遍历算法
- python爬虫代码简化1
- NKOI 3671最大异或
- 仿LOL项目开发第二天
- MAC OS下OpenSSL生成私钥和公钥以及RSA加密
- 避免复杂的layout
- [Express-02] 路由配置
- 高光谱ENVI使用教程之监督分类与非监督分类
- U3D 游戏引擎之游戏架构脚本该如何来写
- 仿LOL项目开发第二天
- HDU 3038 How Many Answers Are Wrong 带权并查集
- 向上下左右不间断无缝滚动图片的效果(兼容火狐和IE)