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.

思路:使用栈,java Stack类中 peek方法是查看栈顶元素而不移除它

 

 1 public class Solution {
 2     public boolean isValid(String s) {
 3         // Start typing your Java solution below
 4         // DO NOT write main() function
 5         Stack<Character> stack = new Stack<Character>();
 6         int len = s.length();
 7         boolean flag = false;
 8         for(int i = 0; i < len; i++){
 9             if(!stack.empty()){
10                 char top = stack.peek();
11                 char c = s.charAt(i);
12      
13                 if(!match(top, c))
14                     stack.push(c);
15                 else{
16                     stack.pop();
17                 }
18             } else {
19                 char c = s.charAt(i);
20                 stack.push(c);
21             }
22         }
23         
24         if(!stack.empty())
25             return flag;
26         else{
27             flag = true;
28             return flag;
29         }
30     }
31     
32     boolean match(char a, char b){
33         if(a == '(' && b == ')'){
34             return true;
35         } else if(a == '{' && b == '}'){
36             return true;
37         } else if(a == '[' && b == ']'){
38             return true;
39         } else {
40             return false;
41         }
42     }
43 }

 

 

 

 

posted @ 2013-07-14 13:57  feiling  阅读(191)  评论(0编辑  收藏  举报