做题的时候,在第三个测试用例上出了点小问题,然后发现自己没有加上循环结束后判断栈是否为空的条件,为空时才可以返回true。
import java.util.*;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
// write code here
Stack<Character> stack = new Stack<>();
char[] chars = A.toCharArray();
for (char item : chars) {
if (item == '(') {
stack.push(item);
} else if (item == ')') {
if (stack.isEmpty()) {
return false;
} else if (stack.pop() != '(') {
// 用pop判断后不需要再写else条件出栈,因为无论这条语句是否成功,都会出栈
return false;
}
} else {
return false;
}
}
if (stack.isEmpty())
return true;
else {
return false;
}
}
}
京公网安备 11010502036488号