面试题:利用栈判断括号是否配对完整

 1 import java.util.Stack;
 2 
 3 public class Parentheses {
 4     public static boolean isParentheses(String s) {
 5         Stack<Character> stack = new Stack<>();
 6         for (int i = 0; i < s.length(); i++) {
 7             char c = (char) s.charAt(i);
 8             if (c == '{' || c == '[' || c == '(') {
 9                 stack.push(c);
10             } else if (c == ')') {
11                 if (stack.peek() != '(')
12                     return false;
13                 else
14                     stack.pop();
15             } else if (c == ']') {
16                 if (stack.peek() != '[')
17                     return false;
18                 else
19                     stack.pop();
20             } else if (c == '}') {
21                 if (stack.peek() != '{')
22                     return false;
23                 else
24                     stack.pop();
25             }
26         }
27         return true;
28     }
29 
30     public static void main(String[] args) {
31         // TODO Auto-generated method stub
32         System.out.println(isParentheses("[(])"));
33         System.out.println(isParentheses("[()]{}{[()()]()}"));
34     }
35 
36 }

 

posted @ 2017-11-17 09:20  Kkky  阅读(754)  评论(0编辑  收藏  举报