LeetCode Valid Parentheses
阿新 • • 發佈:2018-12-11
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
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
class Solution { public boolean isValid(String s) { int l = s.length(); if(l == 0){ return true; } if(l % 2 != 0){ return false; } Stack<Character> stack = new Stack<>(); for(int i = 0;i < l;i++){ Character c = s.charAt(i); if(stack.isEmpty()){ stack.push(c); }else{ Character cc = stack.pop(); if(!match(cc,c)){ stack.push(cc); stack.push(c); } } } if(stack.empty()){ return true; } return false; } public boolean match(Character c, Character cc){ if(c.equals('(') && cc.equals(')')){ return true; } if(c.equals('[') && cc.equals(']')){ return true; } if(c.equals('{') && cc.equals('}')){ return true; } return false; } }