Thursday, July 3, 2014

Leetcode - Valid Parentheses

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.
[Thoughts]: 这个题旨在理解题意
public class Solution {
    public boolean isValid(String s) {
        char[] arr = s.toCharArray();
        Stack<Character> stack = new Stack<Character>();
        for(char i : arr){
          switch(i){
            case '(':
              stack.push('(');
              break;
              
            case ')':
              if(stack.empty() || stack.pop() != '(')
                return false;
               break;
                 
            case '{':
              stack.push('{');
              break;
              
            case '}':
              if(stack.empty() || stack.pop() != '{')
                return false;
               break;
                
            case '[':
              stack.push('[');
              break;
              
            case ']':
              if(stack.empty() || stack.pop() != '[')
                return false;
               break;
          }
        }
     
     return stack.empty();    
    }
}

No comments:

Post a Comment