主要考虑括号需要成对出现,在调用 stack.pop() 出栈的时候,未考虑到栈空了的情况,特此记录一下。

import java.util.*;

public class Parenthesis {
    public boolean chkParenthesis(String A, int n) {
        // write code here
        if (n == 0) {
            return false;
        }
        Stack<String> stack = new Stack<>();
        String[] c = A.split("");
        for (int i = 0; i < n; i++) {
            if ("(".equals(c[i])) {
                stack.push(String.valueOf(c[i]));
            } else if (")".equals(c[i])) {
                if (stack.size() > 0)  stack.pop();
                else return false;
            } else {
                return false;
            }
        }
        if (stack.size() > 0 ){
            return false;
        }
        return true;
    }
}