Leetcode Valid Parentheses
2015-09-22 12:06
281 查看
Given a string containing just the characters
The brackets must close in the correct order,
一个个检查给的characters,如果是左括号都入栈;如果是右括号,检查栈如果为空,证明不能匹配,如果栈不空,弹出top,与当前扫描的括号检查是否匹配。
全部字符都检查完了以后,判断栈是否为空,空则正确都匹配,不空则证明有没匹配的。
注意:检查char是用==
Java code:
Reference:
1. http://www.cnblogs.com/springfor/p/3869420.html
'(',
')',
'{',
'}',
'['and
']', determine if the input string is valid.
The brackets must close in the correct order,
"()"and
"()[]{}"are all valid but
"(]"and
"([)]"are not.
解题思路:
经典老题,用stack。一个个检查给的characters,如果是左括号都入栈;如果是右括号,检查栈如果为空,证明不能匹配,如果栈不空,弹出top,与当前扫描的括号检查是否匹配。
全部字符都检查完了以后,判断栈是否为空,空则正确都匹配,不空则证明有没匹配的。
注意:检查char是用==
Java code:
public boolean isValid(String s) { if(s.length() == 0) { return false; } Stack<Character> x = new Stack<Character>(); for(int i = 0; i < s.length(); i++) { if(s.charAt(i) =='(' || s.charAt(i) == '[' || s.charAt(i) == '{') { x.push(s.charAt(i)); }else{ if(x.size() == 0){ return false; } char y = s.charAt(i); char z = x.pop(); if(!((y == ')' && z == '(') || (y == ']' && z == '[') || (y == '}' && z == '{'))){ return false; } } } return x.size() == 0; }
Reference:
1. http://www.cnblogs.com/springfor/p/3869420.html
相关文章推荐
- Win10怎么关闭系统提示音?
- svn
- HDCP版权保护机制
- 堆排序
- ITMS-90535
- Python脚本02 —— 删除以@3x.png为后缀的文件
- NPOI之Excel——合并单元格、设置样式、输入公式
- 一千行MySQL学习笔记(十二)
- Codeforces Round #268 (Div. 1) A. 24 Game 构造
- 定位 - MapKit-自定义大头针
- 归并排序
- JSP教程之使用JavaBean完成业务逻辑的方法
- 07-js正则验证文件后缀名
- hadoop 2.6 完全分布式安装过程及记录 (详细版)
- 正则表达式总结
- hihoCoder1233(2015北京网络赛H题)
- 一千行MySQL学习笔记(十一)
- 数据库的查找
- 读后感 ”一个IT青年北漂四年的感悟(长文慎入)“
- SqlServer数据通过DBLink 同步到Oracle小例 (不积跬步,无以至千里)