LeetCode | #20 Valid Parentheses
来源:互联网 发布:二次供水监控系统源码 编辑:程序博客网 时间:2024/04/29 22:01
题目:
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.
- “([])”这样的形式也是valid,用栈,后进先出,判断规则如下:
- 如果是'(', '[', '{',就直接入栈;
- 如果是')', ']', '}',就判断栈顶和该字符是不是一对,是就将栈顶pop,继续1,否则就返回false;
- 如果最后栈不为空,返回false,否则返回true;
可以用map也可以不用
import java.util.HashMap;import java.util.Map;import java.util.Stack;public class ValidParentheses {/*//用map存对应关系public boolean isValid(String s) {Map<Character, Character> map = new HashMap<Character, Character>(){{put(')', '(');put(']', '[');put('}', '{');}};Stack<String> stack = new Stack<>();int n = s.length();for(int i=0; i<n; i++){if(stack.empty()){stack.push(s.charAt(i));continue;}if(stack.peek() == (map.get(s.charAt(i)))){stack.pop();}else{stack.push(s.charAt(i));}}if(stack.empty())return true;return false; }*/public boolean isValid(String s) {Stack<Character> stack = new Stack<>();int n = s.length();char c;for(int i=0; i<n; i++){c = s.charAt(i);if(c==')' || c==']' || c=='}'){if(stack.empty()) return false;char c2 = stack.peek();if((c==')' && c2!='(') || (c==']' && c2!='[') || (c=='}' && c2!='{')){return false;}stack.pop();}else{stack.push(c);}}if(stack.empty())return true;return false; }}
0 0
- LeetCode 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
- LeetCode | #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
- LeetCode 20 - Valid Parentheses
- LeetCode 20: Valid Parentheses
- leetcode-20 Valid Parentheses
- leetcode 20 -- Valid Parentheses
- 学习笔记PHP(3)
- 简洁的kafka单节点和分布式安装文档
- 快速找到数组总最小的数
- FGTool的使用关键
- 高富帅们的Git技巧
- LeetCode | #20 Valid Parentheses
- 加州理工学院公开课:机器学习与数据挖掘_Epilogue(第十八课-终结篇)
- 《Visual c++2013入门经典(第7版)》上机练习:为 Win32 控制台应用程序创建项目
- UML关系(泛化,实现,依赖,关联(聚合,组合))
- 纠正30天自制操作系统第6天第4小结的错误
- 学习网站!!!!!!
- 分布式缓存系统Memcached(九)——状态机之socket连接与派发
- MyEclipse修改Jsp默认模板
- WP(Windows Phone8.1 )开发笔记 Error:DEP0001:Uexpected Error:Package could not be registered.(Exception f