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.

 

 1 public class Solution {
 2     public boolean isValid(String s) {
 3         // Note: The Solution object is instantiated only once and is reused by each test case.
 4         // '(' - '0' :: -8
 5         // ')' - '0' :: -7
 6         
 7         // '[' - '0' :: 43
 8         // ']' - '0' :: 45
 9         
10         // '{' - '0' :: 75
11         // '}' - '0' :: 77
12         Stack<Integer> st = new Stack<Integer>();
13         for(int i = 0; i < s.length(); i ++){
14             int c = s.charAt(i) - '0';
15             if(c == -8 || c == 43 || c == 75) st.push(c);
16             else if(c == -7){
17                 if(st.size() != 0 && st.peek() == -8)st.pop();
18                 else return false;
19             }
20             else if(c == 45){
21                 if(st.size() != 0 && st.peek() == 43)st.pop();
22                 else return false;
23             }
24             else if(c == 77){
25                 if(st.size() != 0 && st.peek() == 75)st.pop();
26                 else return false;
27             }
28             else return false;
29         }
30         if(st.size() != 0) return false;
31         return true;
32     }
33 }

 

posted on 2013-10-16 08:03  Step-BY-Step  阅读(144)  评论(0编辑  收藏  举报

导航