Leetcod--20. Valid Parentheses(極簡潔的括號匹配)
阿新 • • 發佈:2019-02-11
bsp for NPU peek pan color bool put tco
Given a string containing just the characters ‘(‘
, ‘)‘
, ‘{‘
, ‘}‘
, ‘[‘
and ‘]‘
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
正常的代碼
class Solution { public boolean isValid(String s) { Stack<Character> st=new Stack<Character>(); for(char c:s.toCharArray()){ if(c==‘(‘||c==‘[‘||c==‘{‘) st.push(c); else if(c==‘}‘&&!st.empty()&&st.peek()==‘{‘) st.pop(); else if(c==‘]‘&&!st.empty()&&st.peek()==‘[‘) st.pop(); else if(c==‘)‘&&!st.empty()&&st.peek()==‘(‘) st.pop(); else return false; } return st.empty(); } }
很巧妙的方法
class Solution { public boolean isValid(String s) { Stack<Character> st=new Stack<Character>(); for(char c:s.toCharArray()){ if(c==‘(‘) st.push(‘)‘); else if(c==‘[‘) st.push(‘]‘); else if(c==‘{‘) st.push(‘}‘); else if(st.empty()||st.pop()!=c) return false; } if(st.empty()) return true; else return false; } }
Leetcod--20. Valid Parentheses(極簡潔的括號匹配)