leetcode20:Valid Parentheses
2016-12-22 21:58
351 查看
Valid Parentheses
Given a string containing just the characters
The brackets must close in the correct order,
这个题只要学过数据结构了解栈的人都应该一眼就可以看出来怎么做,而且书中就有这样的例子。如果是左括号则入栈,如果是右括号,则取当前栈顶元素与此右括号比较,如果匹配则栈顶元素出栈,如果不匹配则返回false,最终如果栈为空则返回true.
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.
这个题只要学过数据结构了解栈的人都应该一眼就可以看出来怎么做,而且书中就有这样的例子。如果是左括号则入栈,如果是右括号,则取当前栈顶元素与此右括号比较,如果匹配则栈顶元素出栈,如果不匹配则返回false,最终如果栈为空则返回true.
package leetcode; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class leet20 { public static void main(String[] args) { leet20 lee = new leet20(); String str = "{()()()[]]}"; boolean result = lee.isValid2(str); System.out.println(result); } //第一次代码 public boolean isValid(String s){ List<Character> stack = new ArrayList<Character>(); for(int i = 0;i < s.length();i++){ if(s.charAt(i) == '(' || s.charAt(i) == '{'||s.charAt(i) == '['){ stack.add(s.charAt(i)); }else{ switch (s.charAt(i)){ case ')': if(stack.get(stack.size()-1) == '('){ stack.remove(stack.size()-1); }else{ return false; } break; case ']': if(stack.get(stack.size()-1) == '['){ stack.remove(stack.size()-1); }else{ return false; } break; case '}': if(stack.get(stack.size()-1) == '{'){ stack.remove(stack.size()-1); }else{ return false; } break; } } } if(stack.size() == 0){ return true; }else return false; } //精简后的代码 public boolean isValid2(String s){ List<Character> stack = new ArrayList<Character>(); for(int i = 0;i < s.length();i++){ if(s.charAt(i) == '(' || s.charAt(i) == '{'||s.charAt(i) == '['){ stack.add(s.charAt(i)); }else{ if((s.charAt(i)==')'&&stack.get(stack.size()-1) == '(')||(s.charAt(i)==']'&&stack.get(stack.size()-1) == '[') ||(s.charAt(i)==')'&&stack.get(stack.size()-1) == '(')){ stack.remove(stack.size()-1); }else return false; } } if(stack.size() == 0){ return true; }else return false; } }
相关文章推荐
- Leetcode 20. Valid Parentheses
- leetcode 20. Valid Parentheses
- leetcode:20. Valid Parentheses
- Leetcode题解14 20. Valid Parentheses
- Leetcode 20. Valid Parentheses (Easy) (cpp)
- 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 (c++实现)
- LeetCode 20 Valid Parentheses
- LeetCode-20.Valid Parentheses
- LeetCode 20 Valid Parentheses(有效的括号)