Leetcode-Valid Parentheses

LiBlog發表於2014-11-29

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.

Solution:

 1 public class Solution {
 2     public boolean isValid(String s) {
 3         Stack<Character> stack = new Stack<Character>();
 4 
 5         for (int i=0;i<s.length();i++){
 6             char cur = s.charAt(i);
 7             if (cur=='(' || cur=='[' || cur=='{')
 8                 stack.push(cur);
 9             else {
10                 if (stack.isEmpty()) return false;
11                 char pre = stack.pop();
12                 if (!isMatch(pre,cur)) return false;
13             }
14         }
15 
16         if (!stack.isEmpty()) return false;
17         else return true;
18         
19     }
20 
21     public boolean isMatch(char a, char b){
22         if ((a=='(' && b==')') || (a=='[' && b==']') || (a=='{'&&b=='}')) 
23             return true;
24         else return false;
25     }
26 }

 

相關文章